Knockout - dependentObservable(或计算)上的多选列表

时间:2012-07-06 20:40:43

标签: jquery knockout.js

我对这个问题有一个小提琴,这几天让我烦恼:fiddle

包含selectedUserReport observable以及SelectedRecord dependentObservable的模式是我从here

获取的模式

我遇到的问题是,每当您单击多选列表中的某个项目时,PageModel.SelectedRecord函数就会进行评估,这会阻止您选择任何项目。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

您遇到语法错误,此处为working fiddle

selectedOptions: SelectedColumns //Shortcut, if prop is in context (it isn't right now)
selectedOptions: $parent.SelectedColumns //illegal
selectedOptions: $parent.SelectedColumns() //Correct

问题在于,当自己引用一个观察者时,淘汰赛允许你放弃这些。但是,任何其他内容如内联函数或其他引用,您需要使用parens。你在中间使用了非法线路。

修改
好的,所以保存有点乱,但基本上你的保存代码不正确地推送数据。这是another fiddle。请注意,编辑行现在是:

self.selectedUserReport(new userReportModel(data));

您没有构建新模型,只是推送数据。这已经打破了对话框现在关闭,但如果您手动关闭它,它将重新打开正确选择的选定选项。我希望你能从这里管理它。