将一个可观察数组存储在变量中,并替换它的内容
Storing an observable array in variable and replacing it's content
如何通过将其存储在另一个变量中来替换可观察数组的内容,例如:
我有一个可观察数组:var list = self.StateList();
我想这样做:
var cities = self.CityList();
//console.log(cities);
var oldLocation = ko.utils.arrayFirst(cities, function (item) {
return item.CityId == args.CityId;
});
cities.replace(oldLocation, args);
但是显示错误城市没有方法replace
,
更新我尝试了这个答案,它有一些帮助我我使用可观察切片方法,它有一些帮助:
var cities = self.CityList();
var observble = ko.observable();
observble(cities.slice(0));
所以我的所有城市observable
将被复制到一个全新的observable
现在我可以做任何我想要的,因为它是我的城市相同的可观察数组。有人可能会想为什么要把可观察数组转换成变量然后再把它转换成可观察数组。我需要把我的可观察数组发送给一个函数。如果有其他更好的解决方案,请贴在这里。
请尝试一下
// The observable array
this.CityList = ko.observableArray([{CityId :1 }, {CityId :2 } ,{CityId :3 }]);
// observable array stored in variable. The brackets should not be used if you
// want to treat the cities variable as an observable array
var cities = this.CityList;
// Find a city with id 1.
var oldLocation = ko.utils.arrayFirst(cities(), function (item) {
return item.CityId == 1;
});
console.log(oldLocation);
// Replace the city with id 5
cities.replace(oldLocation , {CityId :5 });
// The values in both arrays will get modified
console.log(cities()[0]);
console.log(this.CityList()[0]);
相关文章:
- Javascript链接和变量替换
- Javascript 变量替换
- 如何在javascript中用字符串变量替换一段文本
- 在Javascript中,如何用变量替换元素的名称
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- 为什么 Meteor.users.findOne({用户名: “test”}) 返回一个对象,但用具有相同值的变量替换
- 将数组映射变量替换为实际的变量名称/字符串
- 将实例变量替换为局部变量
- 用javascript中的变量替换运算符
- 如何用jquery中定义的变量替换数据值的值
- 使用jquery变量替换句点、冒号或任何其他字符的通用regexp
- javascript/用全局变量替换文本
- JS使用变量替换所有出现的字符串
- 用相同的命名变量替换字符串
- envsubst将javascript文件中的变量替换为环境变量
- 用函数(变量)替换变量
- 使用变量替换多个字符串
- JavaScript -使用变量替换子字符串
- 我不能用正则表达式和变量替换字符
- 用javascript变量替换表单中的隐藏值