【发布时间】:2015-03-02 12:06:27
【问题描述】:
参数控制要显示的数据。该参数从视图模型的 activate 方法中的 activationData 中检索,并用于调用 Web Api 方法。返回数据,并像这样添加到视图模型中
define(['durandal/app', 'knockout', 'moment'],
function (app, config, ko, moment) {
var vm = {
app: app
};
vm.activate = function (activationData) {
vm.ChecklistInstanceId = activationData.ChecklistInstanceId;
$.ajax({
url: "api/ChecklistInstance/" + vm.ChecklistInstanceId,
headers: { Authorization: "Session " + app.SessionToken() }
}).done(function (data) {
$.extend(vm, ko.mapping.fromJS(data));
});
};
return vm;
});
在扩展后立即检查视图模型,发现它完全按照预期使用可观察对象进行装饰。例如, vm.Caption() 存在并返回我期望的字符串,而 vm.Section() 是一个适当填充的可观察数组,依此类推,形成一个相当精细的对象图。
问题是绑定阶段已经发生,当时视图模型缺少我试图绑定的所有可观察对象。
建议有两种可能的策略:
- 提前获取参数
- 重新绑定
我不知道如何做这两件事。谁能告诉我如何重新组织我的代码以允许绑定到参数化获取的数据?
【问题讨论】:
标签: durandal knockout-mapping-plugin