【问题标题】:Issue with Knockout, Cannot use 'in' operator to search for 'length'淘汰赛问题,无法使用“in”运算符搜索“length”
【发布时间】:2012-07-05 20:00:10
【问题描述】:

我在使用 Knockout.js 的 Web 应用程序上收到以下错误

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>

这是我的模型

public class Disabilities
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool Active { get; set; }
}

这是网络服务的代码

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));

有什么建议吗?我在网上到处搜索,找不到任何有用的东西

更新 1:

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"Id":1,"Name":"Blind","Active":false},{"Id":2,"Name":"Mute","Active":true}] Knockout.js:92

【问题讨论】:

  • 您是否在 javascript 中遇到该错误?如果是这样,您的浏览器调试器会指出发生错误的行。您可以发布发生错误的代码吗?
  • 发布完整的错误信息、行号和文件
  • 我已经更新了我的问题。错误发生在 Knockout.js 文件中
  • 试试吧:ko.applyBindings(viewModel);

标签: javascript asp.net knockout.js


【解决方案1】:

我发现了我的问题:

disabilities: ko.observableArray(data)

这段代码应该是

disabilities: ko.observableArray(ko.utils.parseJson(data))

【讨论】:

  • 你也可以告诉 $.post 函数你期待一个 json 响应,jQuery 会自动将它解析成一个 JavaScript 对象:$.post("url", function(data) { }, 'json');api.jquery.com/jQuery.post
猜你喜欢
  • 2016-03-03
  • 2019-10-10
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多