博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WinJS.Binding.List与kendo.data.ObservableArray
阅读量:6941 次
发布时间:2019-06-27

本文共 1785 字,大约阅读时间需要 5 分钟。

avalon0.8一个最大目标是实现对数组的深层监控,可是面临的困难重重,至今还没有什么起色。于是看一下其他两个MVVM框架的做法(knockout, emberjs, angular都不能监听家庭数组元素的属性改动)

WinJS.Binding.List的详细文档可见

我写了一些测试示例,发现它是生成一个新对象来处理,而且不是数组实例,也不是类数组对象,用起点有点别扭。

var object = new WinJS.Binding.List([1, 2, 3, 5, {a: 4}]);            console.log(object)            console.log(object.getItem(0))            console.log(object.getAt(0))            object.addEventListener("iteminserted", function() {                console.log(arguments)            })            object.addEventListener("itemchanged", function() {                console.log(arguments)            })            object.addEventListener("itemmutated", function() {                console.log(arguments)            })            object.push(7, 8, 9)            object.setAt(0, 10)            object.setAt(4, {a: 7})            console.log(object.getItem(4))            object.getItem(4).data.a = "7777777"            object.notifyMutated(4)

kendo ui的监控数组可见这里

var array = new kendo.data.ObservableArray([1, 2, 3]);array.bind("change", function(e) {    console.log(e.action, e.index, e.items);});array.push(4, 5); // outputs "add", 3, [4, 5]array.pop(); // outputs "remove", 4, [5]var people = new kendo.data.ObservableArray([{ name: "John Doe" }]);people.bind("change", function(e) {    console.log(e.action, e.field, e.items[0].get("name"));});people[0].set("name", "Jane Doe"); // outputs "itemchange", "name", "Jane Doe"

从它们的接口设计来看,它们不像avalon原打算的那样,通过监控数组所在的VM来监控,而是监控数组本来就应该自己管好自己。

avalon.define("xxx", function(vm){    vm.array = [1,2,3,4]    vm.$watch("array.length", callback)})//打算从上面的接口换成下面这种var model = avalon.define("xxx", function(vm){    vm.array = [1,2,3,4]})model.$watch("length", callback)model.$watch("remove", callback)model.$watch("add", callback)model.$watch("change", callback)

转载地址:http://wgnnl.baihongyu.com/

你可能感兴趣的文章
【转载并记录】SpringBoot 入门(一)
查看>>
我的第一个python web开发框架(30)——定制ORM(六)
查看>>
performselectoronmainthread
查看>>
产品经理必须要了解的26个文档
查看>>
grep的两个替代品(补充?)
查看>>
HDOJ---1068 Girls and Boys[匈牙利算法]
查看>>
POJ-2528 Mayor's posters (点树+离散) 线段树 ----------------------转
查看>>
Create a Git Mirror (for your hg repository) / hg tip
查看>>
[转]sql server 存储过程中变量表与临时表的分析比较
查看>>
无法启动程序“http://localhost:3303/Default.aspx”
查看>>
SQL 把字符创分割成两个字符串
查看>>
java使用JNDI 获取weblogic配置的数据源 连接数据库
查看>>
大年初七回杭州
查看>>
Java--选择排序,冒泡排序
查看>>
MySQL 时间戳(Timestamp)函数
查看>>
免费的jquery ui 收集
查看>>
启动Windows virtual pc XPMODE
查看>>
Java网络02 Servlet开胃酒
查看>>
编写简单的c运行库(二)
查看>>
UML介绍--用例图
查看>>