我试图在使用拼接编辑记录后更新表,但出现如下错误。性别是一个单选按钮。我什至试图删除它,下一个字段显示错误。我在这里做错了什么?
未捕获的 ReferenceError:无法解析绑定。绑定值:文本:性别消息:性别未定义
我看到了一个类似的帖子Splicing new array of items to existing Knockout observable array 会导致绑定错误,但它似乎对我不起作用。
查看模型
var vmSearchResultsModel = function ()
{
var self = this;
self.SearchResults = ko.observableArray([]); //Holds the results of the search
}
返回到可观察数组的数据
"SearchResults": [
{
"id": 3,
"name": "Adrian D'Costa",
"dob": "/Date(-37776600000)/",
"gender": "M",
"joindate": "/Date(-37776600000)/" //<-- this is another issue I need to fix
},
{
"id": 14,
"name": "Janet D'Curz",
"dob": "/Date(-37776600000)/",
"gender": "F",
"joindate": "/Date(-37776600000)/"
}
]
拼接
var getjsondata = ko.toJSON(self.SearchResults, ['name', 'gender', 'dob', 'joindate']) // select only what is required to show
console.log(getjsondata);
var obj = JSON.parse(getjsondata); // convert JSON to JS string
alert(obj[0].gender); //M Male, F Female
self.SearchResults.splice(self.CurrentIndex, 1, obj); // updates the row that was edited <-- shows an error here
编辑时的单选按钮绑定
<td> Gender </td>
<td>
<input type="radio" id="rdMale" name="Gender" value='M' data-bind="checked: $root.gender" />
<input type="radio" id="rdFemale" name="Gender" value='F' data-bind="checked: $root.gender" />
</td>
编辑 1 当我根据 DOB、JoinDate 搜索一些数据时,下面的模板显示...
<script type="text/html" id="TmplSearchResults">
<tr style="border-bottom: 1px solid #CCC;">
<td valign="middle" data-bind="text: name"></td>
<td valign="middle" align="center" data-bind="text: gender"></td>
<!-- ko if: ($root.SearchByVal() ==="DOB") -->
<td valign="middle" data-bind="textualDate: dob"></td>
<!-- /ko -->
<!-- ko if: ($root.SearchByVal()==="Join Date") -->
<td valign="middle" data-bind="textualDate: joindate"></td>
<!-- /ko -->
<td valign="middle" > <img type="image" title="edit" src="images/edit1.png" data-bind="event:{ click: $root.EditEmpDetails.bind($data, $index())}" /></td>
</tr>
</script>
编辑 2
我改变了这样的代码
self.SearchResults().splice(self.CurrentIndex, 1, obj);
现在Uncaught ReferenceError: Unable to parse bindings。绑定值:文本:性别消息:性别未定义错误未显示,但行未随更改而更新。我哪里错了?
编辑 3
Jfiddle http://jsfiddle.net/7LYad/1/
更新
这个小提琴没有任何错误,但没有发生拼接,也没有更新可观察的。我哪里错了。我应该有两个视图模型,一个用于显示网格,一个用于保存,一个用于编辑、保存和拼接?