我在我的應用程序中使用knockout.js插件。我有可觀察的問題。我創建了一個Example Fiddle。在這個小提琴中,我每次添加新菜單時都會動態創建Menus
並生成Menu sequence
。用戶可以刪除除第一個之外的任何現有菜單。Knockout可觀察財產不更新
問題出在用戶刪除任何現有的菜單。因爲在刪除時我正在更新刪除功能中的序列號,但序列號未更新。 任何人都可以告訴我最新的問題?
我在我的應用程序中使用knockout.js插件。我有可觀察的問題。我創建了一個Example Fiddle。在這個小提琴中,我每次添加新菜單時都會動態創建Menus
並生成Menu sequence
。用戶可以刪除除第一個之外的任何現有菜單。Knockout可觀察財產不更新
問題出在用戶刪除任何現有的菜單。因爲在刪除時我正在更新刪除功能中的序列號,但序列號未更新。 任何人都可以告訴我最新的問題?
您正在重新定義Sequence變量。最初它是一個ko.observable。您將其設置爲整數值。你應該這樣設置值
newMenuVM.Sequence(self.menus().length+1);
這將允許observable通知和更新屏幕上的值。
解決方案:Fiddle
修改:
newMenuVM.Sequence = ko.observable(self.menus().length+1);
self.menus()[i].Sequence(i+1);
刪除:
self.courseOptions.push(newMenuVM);
原因是:
當我運行你的小提琴時,我看到一個錯誤「對象#的屬性'序列'不是函數」。
我搜索此屬性,並請參閱:
newMenuVM.Sequence = self.menus().length+1;
所以,我想補充ko.observable功能。
JNo非常感謝您的幫助。如果你可以解釋原因,那麼它將在未來真的幫助我很多 –
我很困惑,因爲我在MenuViewModel中使Sequence屬性可觀察,爲什麼需要使它可觀察 –
我編輯了答案,添加了更改的原因:D – JNo