我是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 这样你就可以绑定到它。

... in some element template ...

<app-globals values="{{globals}}"></app-globals>
<h2>{{globals.header}}</h2>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top