arrays - Polymer 1.0 观察者 - 不在数组上工作

标签 arrays polymer push observers

我设置了一个观察者来捕获数组属性上的所有 polymer 识别事件,但我捕获它来捕获更改。在下面的示例中,我的观察者函数“bigup”仅在属性“bigs”首次初始化时才会被调用。

<dom-module id="parent-page">
<template>
    <paper-button on-click="updateAll">Update</paper-button>
</template>
<script>
    var temp=[];
    temp.push({'conversation':[{'message':'hello'}]});

    Polymer({
        is: 'parent-page',
        properties: {
            bigs: {
                type: Array,
                value: temp
            }
        },
        observers: [
            'bigup(bigs.*)'
        ],
        updateAll: function(){
            this.bigs.push({'conversation':[{'message':'hola'}]});
            console.dir(this.bigs);
        },
        bigup: function(){
            console.log('big Up');
        }
    });
</script>

我也尝试在观察者中使用bigs.push,但没有成功。我不明白的一部分是,如果我将以下行添加到我的“updateAll”函数中,观察者会捕获更改并触发“bigup”。

this.bigs=[];

最佳答案

对我来说this article也很有帮助,它涵盖了注册观察者的方法以及 Justin XL 建议的拼接方法。

注册观察者:

properties: {
    users: {
      type: Array,
      value: function() {
        return [];
      }
    }
  },

  observers: [
    'usersAddedOrRemoved(users.splices)'
  ],

调用以 Polymer 1.0 方式拼接方法:

this.push('users', 'TestUser');

https://www.polymer-project.org/1.0/docs/devguide/properties.html#array-observation

仅供引用 - 这并不适用于所有情况(我最初的想法) 当您在属性声明中注册观察者时,如下所示:

 properties: {
        users: {
          type: Array,
          value: function() {
            return [];
          },
          observer: 'usersAddedOrRemoved'
        }
      },

在这种情况下,仅当您将新数组分配给 users 对象时才会调用 usersAddedOrRemoved 方法。然而,当您通过压入、弹出、拼接等方式改变数组时,它不会触发。

关于arrays - Polymer 1.0 观察者 - 不在数组上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32215861/

相关文章:

iphone - 将通知更新推送到现有应用程序 : Will Users Be asked to allow or not?

jquery推送制作多维数组

git 将克隆的存储库推送到自己的存储库

python - 如何获取行中的最后一个字符串,并将其插入到数组中?

php - 从数组中的文件名中提取基名

javascript - 如何将数据推送到 Polymer dom-repeat 模板?

seo - Google 抓取工具是否在索引之前等待页面完成?

arrays - CodeIgniter: Controller 中的全局变量

javascript - 分配、混合、合并...与其他数组

javascript - Polymer拖放事件对象属性包含父srcElement