ko observablearray:推送和直接分配之间的区别
ko observablearray: Difference between push and assigning directly
我有一个可观察数组定义为:
model.permitList = ko.observableArray([]);
我正在使用对象数组初始化它。当我这样做时会有所不同
model.permitList (arrayOfObjects)
与。
当我这样做时
for(var i=0; i<arrayOfObjects.length; i++ ){
model.permitList().push(arrayOfObjects(i));
}
我知道有区别,因为当我尝试
使用 <tbody data-bind="foreach: model.permitList">
只有第一种方法有效。
有人知道这两种方法之间的区别吗?提前非常感谢。
使用第二种方法,您将获得具有实际Array
的值,而不是ObservableArray
。
for(var i=0; i<arrayOfObjects.length; i++ ){
model.permitList.push(arrayOfObjects(i));
}
这将改变可观察数组。
执行此操作时model.permitList()
返回一个包含每个值的本机Array
对象。当您调用.push
时,它会修改该数组。 然而,model.permitList
是一个挖空对象。
当你写model.permitList()
时,就像执行一个getter函数来获取值一样。在您的情况下,返回值是一个本机数组,您可以在其上.push
值。这将导致一个本机数组,而不是可观察数组。要使挖空视图绑定起作用并值更改以反映您需要一个observableArray
,这只有在您使用变量(如二传手)作为model.permitList (arrayOfObjects)
时才能完成
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 函数参数中的数据与指定变量之间的任何性能差异
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- ko observablearray:推送和直接分配之间的区别
- 在 JavaScript 中的对象内分配柯里函数时,这和 self 之间有什么区别吗?
- 重新分配变量和重新定义之间的性能差异
- 如何在具有范围的集合之间快速分配值
- 将方法分配给函数内部或外部原型之间的差异
- 2个事件处理程序分配之间的差异
- 如何分配父元素's子元素之间的宽度
- 分配事件监视器和设置onclick之间的区别是什么?