1

让我一步一步解释

  1. 我的一个功能是console.log()在模型中对 Knockout observable 进行操作
  2. 控制台说Array(0)
  3. 但是,此时我单击array(0)它显示项目。所以数组中没有项目是不正确的
  4. 在我Console.log()和我点击 之间的那一刻array(0)observableArray()已经填满了项目,因此不再是空的。

我的问题是,控制台的这个功能错了吗?它应该实际显示项目,还是只显示一个空数组。为什么会发生这种情况?

或者反过来看,当控制台中有 50 个项目时,控制台是否会array(0)更新array(50)

我该如何克服这个问题?使用它的代码片段:

var myModel = function(){
    this.myArray = ko.observableArray();
}

var model = new myModel();
console.log(model.myArray());

model.myArray.push('item');
4

2 回答 2

0

对于这个问题,它帮助我将数据添加到另一个变量,并通过 console.log() 记录。

例子:

var myArray = [];

var logArray = myArray;
console.log(logArray);
于 2012-05-29T13:27:19.073 回答
-1

不确定我是否理解正确,但您的控制台日志仅显示您拨打电话时的项目。因此,在您将项目推送到阵列后,如果您制作了另一个控制台日志,它将反映最新的更改。仅仅因为它是一个 observable 并不意味着控制台日志会自动更新。

要让控制台日志“挂钩”到任何更改,您必须使用绑定调用中的日志创建自定义绑定。

于 2012-05-14T21:40:51.070 回答