【问题标题】:Polymer, observe global var聚合物,观察全局变量
【发布时间】:2014-10-10 04:26:37
【问题描述】:

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

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

【问题讨论】:

    标签: javascript variables global polymer observers


    【解决方案1】:

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

    var notifier = Object.getNotifier(this); 
    

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

    【讨论】:

      猜你喜欢
      • 2015-12-08
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多