我在玩Knockout,現在試圖使用Knockout地址插件(基於jQuery地址)。使用dependencyObservable加載數據導致無限循環
下面的代碼工作,除了當我嘗試輸入地址linkObservableToUrl
提供的頁面加載沒有權利tags
。我猜加載郵件的方式是錯誤的,但我不知道如何使用Knockout框架來完成這項工作。
我有下面的代碼,這是造成一個無限循環:
var viewModel = {
page: ko.observable(1),
//messages: ko.observableArray([]),
tags: ko.observable()
};
viewModel.filterTags = function (filterTags) {
viewModel.tags(filterTags);
};
viewModel.messages = ko.dependentObservable(function() {
$.ajax(
// abbreviated
data: ko.toJSON(viewModel),
// abbreviated
)}, viewModel);
ko.applyBindings(viewModel);
ko.linkObservableToUrl(viewModel.tags, "tags", null);
我怎樣才能解決這個問題,仍然有消息取決於頁面和標籤上?
10x,是他們獲取除消息屬性之外的所有可觀察屬性的JSON的簡單方法嗎? –
我不知道這樣做的好方法。您可以將視圖模型分成一個部分發送到服務器,另一部分不發送,但是我的首選是在發出ajax請求時顯式地從視圖模型中提取所需的屬性。您將來可能會在視圖模型中添加更多內容,而這些內容不需要發送到服務器。 (即,遵循數據傳輸對象(DTO)模式,而不是試圖發送整個視圖模型) – Douglas