我有一个需要有条件地填充数据的视图和视图模型。我注意到 viewAttached 覆盖每个视图只被调用一次......因此最初是我所有 init 调用的逻辑位置,因为数据几乎是静态的。
但是在我将数据从另一个视图传递到屏幕的情况下,激活调用在 viewAttached 之前被触发......所以如果用户之前没有导航到视图......他们的选择不会被选为 init 函数还不会被调用。
我的问题如下:
哪个钩子被认为与执行任何淘汰绑定最相关,或者我如何修改执行顺序,如果我这样做......事情会爆炸吗?:P (作为修补工作部件框架,可能最终会出现不稳定的代码)
视图模型
var vm = {
lookups: lookups,
userInfo: userInfo,
buttons: buttons,
viewAttached: function (view) {
$('.date').datepicker().on('show', function (ev) {
var today = new Date();
var t = today.getFullYear() + "-" + today.getMonth() + '-' + today.getDate();
$(this).data({ date: t }).datepicker('update');
});
console.log('viewAttached');
console.log(view);
// should this move to the activate function?
lookupInit();
},
activate: function (data) {
console.log('activate');
console.log(data);
var id = data.id || undefined;
if (id !== undefined) {
router.isNavigating(true);
http.json('/api/user/' + id)
.done(function (response) {
ko.viewmodel.updateFromModel(vm.userInfo, response);
router.isNavigating(false);
});
}
}
};