我使用Polymer 0.5.2在Firefox 35中遇到了monostate模式的问题。我的元素看起来像这样:
<polymer-element name="tracer-globals">
<script>
(function() {
var store = document.createElement('tracer-store');
Polymer({
publish: {
store: null
},
ready: function() {
this.store = store;
}
});
})();
</script>
</polymer-element>
在ready
点的Chrome中,我可以看到商店对象的各种属性,但在Firefox上,永远不会定义属性(甚至在应用完成加载后很长时间)。
任何想法为什么?
我尝试的事情:
tracer-store
之前导入tracer-globals
。答案 0 :(得分:1)
找到了解决方法:
在created
回调中延迟加载全局对象:
<polymer-element name="tracer-globals">
<script>
(function() {
var store = null;
var getStore = function() {
if (store === null) {
store = document.createElement('tracer-store');
}
return store;
};
Polymer({
publish: {
store: null
},
created: function() {
this.store = getStore();
}
});
})();
</script>
</polymer-element>
非常感谢有关其原因的评论。