我有一個視圖&視圖模型需要有條件地填充數據。我注意到viewAttached覆蓋只在每個視圖中被調用一次...因此最初是我所有init調用的合理位置,因爲數據幾乎是靜態的。Durandal:查看模型激活/初始化階段
但是在我將數據從另一個視圖傳遞到屏幕的情況下,激活的調用在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);
});
}
}
};
希望我能接受這兩個答案。比你 :) –