我是 KnockoutJS 的新手,我遇到了一些问题。
我不明白为什么selectedOf在点击后没有更新。
有人能发现我做错了什么吗?
<div>
<ul data-bind="foreach: Ofs">
<li data-bind="text: Number, click: $root.selectOf" style="cursor:pointer"/>
</ul>
<strong>Item clicked: </strong><span data-bind="text: selectedOf.Number" />
</div>
<script type"text/javascript">
var OfsModel = function (initialData) {
//console.log(initialData);
var self = this;
self.CurrentState = ko.observable(initialData.CurrentState);
self.Ofs = ko.observableArray(initialData.Ofs);
self.selectedOf = ko.observable();
self.selectOf = function (of) {
//console.log(of);
self.selectedOf(of);
//console.log(self.selectedOf());
}
}
var initialData = '{"Ofs":[{"Client":"A","Number":"1","Qty":10,"QtyRejected":5,"StopReason":"","ModifiedOn":"\/Date(1345732172456)\/","IsHighlighter":false,"SequencesAvailable":[{"Id":1,"Name":"Seq1"},{"Id":2,"Name":"Seq2"},{"Id":3,"Name":"Seq3"}],"SelectedSequence":null},{"Client":"B","Number":"2","Qty":20,"QtyRejected":0,"StopReason":"too much work","ModifiedOn":"\/Date(1345732172457)\/","IsHighlighter":false,"SequencesAvailable":[{"Id":1,"Name":"Seq1"},{"Id":2,"Name":"Seq2"}],"SelectedSequence":null},{"Client":"C","Number":"3","Qty":30,"QtyRejected":0,"StopReason":"","ModifiedOn":"\/Date(1345732172457)\/","IsHighlighter":false,"SequencesAvailable":[{"Id":1,"Name":"Seq1"}],"SelectedSequence":null}],"CurrentState":""}';
var vw = $.parseJSON(initialData);
ko.applyBindings(new OfsModel(vw));
</script>
编辑:我把代码放在http://jsfiddle.net/muek/KBeZ3/2/