![](/img/trans.png)
[英]how to load modules into other modules in knockout js AMD helpers
[英]Controlling Applybindings with knockout amd helpers
我正在使用Knockout AMD Helpers加載具有“ 模塊綁定 ”功能的ViewModel。
通常,當我需要加載遠程數據時,我使用延遲對象來確保僅在ViewModel上所有數據可用后才調用ko.ApplyBindings。
我創建了一個示例jsfiddle,以使用延遲的ajax調用來說明我的問題:
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 Helpers構造代碼,但是將ApplyBindings延遲到ViewModel上的所有數據准備好了呢?
在這種情況下,applyBindings將已經發生,因此您要么只希望允許可觀察的部分隨數據可用而更新,要么使用if
或with
或template
綁定來控制特定部分。
例如,您可以將區域包裝在以下位置:
<div data-bind="if: articleTypes().length">
....
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.