【问题标题】:Knockoutjs is not converting array into observable array?Knockoutjs 没有将数组转换为可观察数组?
【发布时间】:2013-02-03 19:34:57
【问题描述】:

我正在使用这个 knockoutjs 教程将数组转换为可观察数组。 http://knockoutjs.com/documentation/observableArrays.html。但是给定的以下行给了我一个长度为零的数组。

var anotherObservableArray = ko.observableArray([
    { name: "Bungle", type: "Bear" },
    { name: "George", type: "Hippo" },
    { name: "Zippy", type: "Unknown" }
]);

为什么 anotherObservableArray 不起作用?

【问题讨论】:

  • 您如何访问它以获取长度为零的数组? anotherObservableArray().length 应该可以工作
  • 是的,谢谢.. 我在考虑 js 数组

标签: javascript knockout.js


【解决方案1】:

您应该访问底层数组的长度,而不是可观察数组本身。
anotherObservableArray().length 会给你合适的长度。

检查这个小提琴:http://jsfiddle.net/jfSG8/

【讨论】:

    【解决方案2】:

    您还没有告诉我们您是如何使用var anotherObservableArray,但以下应该可以工作:

    <ul data-bind="foreach: anotherObservableArray">
        <li data-bind="text: name"></li>
    </ul>
    

    带淘汰赛/js:

    var viewModel = function() {
      this.anotherObservableArray = ko.observableArray([
        { name: "Bungle", type: "Bear" },
        { name: "George", type: "Hippo" },
        { name: "Zippy", type: "Unknown" }
      ]);
    };
    
    ko.applyBindings(new viewModel());
    

    this jsfdiddle

    请注意,我没有使用 var 来存储可观察数组,而是将其创建为视图模型上的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-04
      • 2012-04-20
      • 1970-01-01
      • 2017-11-25
      • 2018-08-04
      • 2013-12-16
      • 2013-05-23
      • 2019-12-09
      相关资源
      最近更新 更多