2014-07-30 1 views
4

Я новичок в полимере и теперь читаю документ. Но я запутался о следующем документе:Документ с глобальными переменными полимера может быть неправильным ~

(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., то как я могу получить значение через приложения-глобалы?

ответ

3

Это похоже на ошибку в документации. Я считаю, что намерение что-то вроде этого:

<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> 
+0

Спасибо за ответ. Все это очищается с помощью 'this.values ​​= values'. У меня теперь есть еще один вопрос об опубликованных атрибутах, не могли бы вы мне помочь? –

+0

http://stackoverflow.com/questions/25050120/confused-about-the-polymer-published-attributes –