Javascript 有敲除问题,不能使用';在';操作员搜索';长度';
我在使用Knockout.js的web应用程序上遇到以下错误Javascript 有敲除问题,不能使用';在';操作员搜索';长度';,javascript,asp.net,knockout.js,Javascript,Asp.net,Knockout.js,我在使用Knockout.js的web应用程序上遇到以下错误 Cannot use 'in' operator to search for 'length' 我的代码: $(document).ready(function () { AjaxRequest(); }); function AjaxRequest() { $.post("../../Api/DisabilitiesHandler.ashx?method=get", functio
Cannot use 'in' operator to search for 'length'
我的代码:
$(document).ready(function () {
AjaxRequest();
});
function AjaxRequest() {
$.post("../../Api/DisabilitiesHandler.ashx?method=get", function (data) {
var viewModel = {
disabilities: ko.observableArray(data)
};
ko.applyBindings( viewModel, document.body);
});
}
<table>
<tbody data-bind="template: { name: 'disabilitiesRowTemplate', foreach: disabilities }"></tbody>
</table>
<script type="text/html" id="disabilitiesRowTemplate">
<tr>
<td>Name:
<input data-bind="value: Name" /></td>
<td>
Active <input type="checkbox" data-bind="checked: Active" /></td>
</tr>
</script>
这是web服务的代码
context.Response.ContentType = "application/JSON";
DbsaDal.Entities.DBSAEntities db = new DbsaDal.Entities.DBSAEntities();
List<DbsaDal.Model.Disabilities> disabilities = DbsaDal.Entities.Disabilities.Get(db);
context.Response.Write(new JavaScriptSerializer().Serialize(disabilities));
我发现了我的问题:
disabilities: ko.observableArray(data)
这段代码应该是
disabilities: ko.observableArray(ko.utils.parseJson(data))
你是不是在javascript中发现了这个错误?如果是这样,浏览器调试器将指出错误发生的位置。你能在错误发生的地方张贴代码吗?张贴完整的错误信息、行号和文件我已经更新了我的问题。错误发生在Knockout.js文件try just:ko.applyBindings(viewModel);您还可以告诉$.post函数您期望一个json响应,jQuery将自动将其解析为一个JavaScript对象:
$.post(“url”,函数(数据){},“json”)代码>
disabilities: ko.observableArray(data)
disabilities: ko.observableArray(ko.utils.parseJson(data))