聚合物1.0观察阵列
Polymer 1.0 Observe Array
我刚刚尝试将我的Polymer网站更新到1.0版本,但我的数组观察器函数不再工作。所以我看了一下文档,发现有一种新的方法可以观察push&弹出式更改。
为了测试这些更改,我从Polymer文档中复制了代码,但即使是那个例子也不起作用。。。以下是我测试示例脚本的尝试:
<!doctype html>
<html>
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<script src="/bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="/bower_components/polymer/polymer.html">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<my-index></my-index>
</body>
</html>
<dom-module id="my-index">
<script>
Polymer({
is: "my-index",
properties: {
users: {
type: Array,
value: function() {
return [];
}
}
},
observers: [
'usersAddedOrRemoved(users.splices)'
],
ready: function(){
this.addUser();
},
usersAddedOrRemoved: function(changeRecord) {
console.log(changeRecord);
changeRecord.indexSplices.forEach(function(s) {
s.removed.forEach(function(user) {
console.log(user.name + ' was removed');
});
console.log(s.addedCount + ' users were added');
}, this);
},
addUser: function() {
this.push('users', {name: "Jack Aubrey"});
}
});
</script>
</dom-module>
javascript控制台只显示Uncaught TypeError: Cannot read property 'indexSplices' of undefined
。有什么想法吗?
usersAddedOrRemoved函数在创建users数组(带有未定义的changeRecord)时启动。如果您处理未定义的,您将看到它按预期工作,并在开始时和添加的用户时触发。
usersAddedOrRemoved: function(changeRecord) {
console.log(changeRecord);
if (changeRecord) {
changeRecord.indexSplices.forEach(function(s) {
s.removed.forEach(function(user) {
console.log(user.name + ' was removed');
});
console.log(s.addedCount + ' users were added');
}, this);
}
},
相关文章:
- knockoutjs可观察数组
- 多次发射多个可观察器的问题
- 未激发路由的控制器属性上的观察者
- 无法在关闭弹出窗口时传递可观察的数据
- 使用正则表达式捕获“”并分割成阵列
- AngularJS卡片转盘:将卡片返回到阵列的末尾
- firefox插件:退出不工作的应用程序观察器
- 从不同的对象创建阵列
- 如何观察控制器/组件内阵列的变化
- 敲除和可观察阵列不匹配
- 阵列突变而不触发特定的观察者
- 微风导航阵列成员是淘汰赛中的可依赖观察对象
- 如何在敲除中对可观察阵列应用多个滤波器
- 如何正确放置$scope$观察二维阵列
- 依赖可观察器中的大型阵列-级联
- 如何检测项目在可观察阵列之间的移动
- 聚合物1.0阵列观察者的结合变化
- 聚合物-如何将观察者连接到阵列
- 聚合物:用复杂观察者观察阵列突变
- 聚合物1.0观察阵列