聚合物,观察全局变量

时间:2014-08-16 19:40:54

标签: javascript variables global polymer observers

我有多个共享相同数据列表的自定义元素。 我正在尝试在全局列表更改时触发事件。

以下代码适用于FF和Safari,但不适用于Chrome。 对此问题的任何建议,或者更好的方法吗?

谢谢,

 (function() {
        var _list = null;

        Polymer("dmw-datatypes", {
            ready:function(){
                ...retreiving a list async...
            },
            get list() {
                return _list;
            },
            listReceived: function(json) {
                _list=json;
            },
            listChanged: function(oldValue, newValue) {
                this.fire('list-received');
            }
        });
    })();

1 个答案:

答案 0 :(得分:0)

这听起来像Object.observe()(在Chrome中是原生的)doesn't work out-of-the-box具有计算属性(如get list() {})这一事实的症状。其他浏览器使用手动脏检查来填充此行为,因此它们可以正常工作。基本上,您将需要创建自己的Object.observe()通知程序

var notifier = Object.getNotifier(this); 

并在使用_list更新notifier.notify()时通知观察员。上面的链接给出了一个例子。

相关问题