本文介绍了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没有定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!