我想将数组传递给ViewModel方法:
self.helpMe = function ( myArray ) {
for (var i=1, ilen=myArray.length, i<ilen, i++) {
//do something...
}
}
有时我的数组只包含一个项目,而另一个方法调用helpMe函数:
self.saveMe = function (item) {
self.helpMe( item.Topics );
...
}
其中主题定义如下
self.Topics = ko.observableArray([]);
并使用“with”data-bind实例化为查询ui项目。
然而,说主题只有一个值[“Sheeps”]然后myArray.length结果是6而不是我希望它是1。我哪里出错?
答案 0 :(得分:2)
看起来你的数组实际上是一个字符串,结果是字符串“Sheeps”的长度
答案 1 :(得分:1)
你可以尝试一个整洁的淘汰实用程序..
self.helpMe = function ( myArray ) {
ko.utils.arrayForEach(myArray(), function () {
//do something... This iterates through each element of the observableArray
}
}
请注意,这不能回答你的问题...只是提出一个在我看来更容易使用/阅读的替代方案。
答案 2 :(得分:0)
我会改变这一行 self.Topics = ko.observableArray([]);
到这一行 self.Topics = ko.observableArray();
以及以下方法
self.helpMe = function(myArray){
for (var i=1, ilen=myArray.length, i<ilen, i++) {
//do something...
}
}
到这个
self.helpMe = function(myArray){
for (var i=0, i < myArray.length - 1, i++) {
self.Topics.push(myArray[i]);
}
}