我是 polymer 的新手,现在正在阅读文档。但我对以下文件感到困惑:
(function() {
var values = {};
Polymer('app-globals', {
ready: function() {
for (var i = 0; i < this.attributes.length; ++i) {
var attr = this.attributes[i];
values[attr.nodeName] = attr.nodeValue;
}
}
});
})();
然后像这样定义全局变量:
<app-globals firstName="Addy" lastName="Osmani"></app-globals>
我已经尝试过这种方式,但是我无法通过 app-globals 获取任何变量,
Value
绝对是一个局部变量,因为它没有启动 this.
,那么如何通过 app-globals 获取值? 最佳答案
这看起来像是文档中的错误。我相信意图是这样的:
<polymer-element name="app-globals" attributes="values">
<script>
(function() {
var values = {};
Polymer('app-globals', {
ready: function() {
// this bit at least is missing from the example
this.values = values;
// initialize values from attributes (note: strings only)
for (var i = 0; i < this.attributes.length; ++i) {
var attr = this.attributes[i];
values[attr.nodeName] = attr.nodeValue;
}
}
});
})();
</script>
</polymer-element>
这样,数据可以从
app-globals
的任何实例中作为 instance.values
获得。我还发布了 values
以便您可以绑定(bind)到它。... in some element template ...
<app-globals values="{{globals}}"></app-globals>
<h2>{{globals.header}}</h2>
关于 polymer 全局变量文件可能有误~,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25035587/