我已经使用 ko.mapping.fromJS(Model) 将 ASP.NET MVC viewModel 加载到 KnockoutJS 中。
我的 viewModel 看起来像这样:
public IEnumerable<FunkyThing>funkyThings;
public FunkyThing selectedFunkyThing;
每个 FunkyThing 都有一个字符串属性 funkyThingName。映射工作正常,我可以看到表中所有时髦的东西及其名称。
我想添加一个快速刷新按钮。所以我创建了一个简单的按钮,然后将数据绑定到按钮单击到敲除功能刷新,看起来像这样:
model.refresh= function () {
var url = '@Url.Action(MVC.FunkyThings.RefreshJSON())';
$.getJSON(url, function (returnedData) {
ko.mapping.fromJS(returnedData, {}, model.funkyThings);
});
成功调用刷新函数,该函数又调用服务器上的 RefreshJSON 方法。服务器传回 JSON 数据——一个更新的 funkyThings 数组,当我将鼠标悬停在 chrome 的调试器中的 returnedData 上时,我可以在 chrome 中看到这些数据。
然而不幸的是,在映射函数被调用后,绑定中断:
未捕获的错误:无法解析绑定。消息:ReferenceError:funkyThingName 未定义;绑定值:文本:funkyThingName
而且我不确定为什么...?