2012-10-19 104 views
1

我在我的應用程序中使用knockout.js插件。我有可觀察的問題。我創建了一個Example Fiddle。在這個小提琴中,我每次添加新菜單時都會動態創建Menus並生成Menu sequence。用戶可以刪除除第一個之外的任何現有菜單。Knockout可觀察財產不更新

問題出在用戶刪除任何現有的菜單。因爲在刪除時我正在更新刪除功能中的序列號,但序列號未更新。 任何人都可以告訴我最新的問題?

回答

1

您正在重新定義Sequence變量。最初它是一個ko.observable。您將其設置爲整數值。你應該這樣設置值

newMenuVM.Sequence(self.menus().length+1); 

這將允許observable通知和更新屏幕上的值。

1

解決方案: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功能。

+0

JNo非常感謝您的幫助。如果你可以解釋原因,那麼它將在未來真的幫助我很多 –

+0

我很困惑,因爲我在MenuViewModel中使Sequence屬性可觀察,爲什麼需要使它可觀察 –

+0

我編輯了答案,添加了更改的原因:D – JNo

相關問題