我使用Knockout AMD Helpers加載ViewModels,並使用'module binding'功能。使用knockout和幫助器控制Applybindings
通常,當我需要加載遠程數據時,我使用延遲對象來確保在ViewModel上所有數據都可用後才調用ko.ApplyBindings。
我使用延遲AJAX調用創建一個sample jsfiddle來說明我的問題:
self.initialize = function() {
self.name("This is a sample article");
self.getArticleTypes(self.articleTypes);
};
self.getArticleTypes = function (observableArticleTypes) {
var fakeData = {
delay: 5
};
$.ajax({
async: true,
cache: false,
type: 'post',
url: '/echo/json/',
data: fakeData,
success: function (data) {
observableArticleTypes([{
id: 1,
articleType: 'Breaking News'
}, {
id: 2,
articleType: 'Weather'
}]);
console.log("Data loaded from server");
}
});
};
我怎樣才能建築師我的代碼,採用的是AMD助手,但延遲ApplyBindings直到我所有的數據已準備好對視圖模型?
這將是巨大的,如果有人可以在標籤「敲除AMD-助手」添加到了一個問題,我沒有足夠的聲譽這樣做 –
似乎是這樣的? http://stackoverflow.com/questions/7427146/knockout-applybindings-is-too-fast?rq=1 –