Knockout observable属性未更新

时间:2012-10-19 04:47:35

标签: javascript jquery knockout.js

我在我的应用程序中使用knockout.js插件。我有一个可观察的问题。我创建了一个Example Fiddle。在这个小提琴中,我每次添加新菜单时动态创建Menus并生成Menu sequence。除第一个菜单外,用户还可以删除任何现有菜单。

用户删除任何现有菜单时出现问题。因为在删除时我更新了删除功能中的序列号,但序列号没有更新。 有谁能告诉我这是什么问题?

2 个答案:

答案 0 :(得分: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 功能。

答案 1 :(得分:1)

您正在重新定义Sequence变量。最初它是一个ko.observable。您将其设置为整数值。您应该将值设置为

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

这将允许observable通知并更新屏幕上的值。