本文介绍了observableArray没有定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在客户端开发环境中工作,并且必须遵守他们的编码标准。我有以下JS和HTML。我观察到的数组即将到来,因为没有定义。我无法让它工作。即使console.logs也在打印正确的值。



请不要担心 ko.applyBindings 。这是照顾。



我的JS代码:

  define (
''knockout'],
函数(ko){
use strict;
return {
onLoad:function(widget){
widget.getDetails = function(prod){
var abc = prod.DetailsNumbers();
console.log(abc);
var someArray = [];
someArray = abc .split(',');
//console.log(someArray);
var anotherObservableArray = ko.observableArray();

for(var i = 0; i < someArray.length; i ++){
var temp = {
prodName:ko.observable(someArray [i])
};
anotherObservableArray.push(temp) ;
}
console.log(anotherObservableArray());
};
}
}
}
);

我的HTML代码:

 < div id =someId> 
< table>
< tbody>
< tr>
< td>按钮在这里< / td>
< td>< button data-bind =click:getDetails(product())>点击我< /按钮>< / td>
< / tr> //这里的工作正常
< / tbody>
< / table>
< ul data-bind =foreach:anotherObservableArray> //这不起作用
< li>
< span data-bind =text:prodName> < /跨度>
< / li>
< / ul>
< / div>



解决方案

You don't expose anotherObservableArray outside the function scope you declare it in. Basically your code is of this format:

{
  onLoad: function (widget) {
    widget.getDetails = function (prod) {
      var anotherObservableArray = ko.observableArray();
      // push some items into the array
      console.log(anotherObservableArray());
    };
  }
}

You somehow need to expose the anotherObservableArray outside the function. For example:

{
  onLoad: function (widget) {
    widget.getDetails = function (prod) {
      var anotherObservableArray = ko.observableArray();
      // push some items into the array
      console.log(anotherObservableArray());
      this.anotherObservableArray = anotherObservableArray; // Expose it on the function
    };
  }
}

这篇关于observableArray没有定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-09 22:47