Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 聚合物,观察全局变量_Javascript_Variables_Global_Polymer_Observers - Fatal编程技术网

Javascript 聚合物,观察全局变量

Javascript 聚合物,观察全局变量,javascript,variables,global,polymer,observers,Javascript,Variables,Global,Polymer,Observers,我有多个自定义元素,它们共享相同的数据列表。 我试图在全局列表更改时触发事件 下面的代码适用于FF和Safari,但不适用于Chrome。 有没有关于这个问题的建议,或者更好的方法 谢谢 (function() { var _list = null; Polymer("dmw-datatypes", { ready:function(){ ...retreiving a list async...

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

下面的代码适用于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');
            }
        });
    })();

这听起来像是
Object.observe()
(在Chrome中是原生的)带有计算属性(比如您的
get list(){}
)的症状。其他浏览器使用手动脏检查来填充此行为,因此工作正常。基本上,您需要创建自己的Object.observe()通知程序

并在您使用
通知程序.notify()更新
列表时通知观察者。上面的链接给出了一个例子

var notifier = Object.getNotifier(this);