2015-07-11 62 views
1

HTML如何訪問聚合物中的屬性值?

<my-element username="{{params.username}}"></my-element> 

<dom-module id="my-element"> 
    <style> 
    :host { 
     display: block; 
    } 
    </style> 
    <template> 
    </template> 
    <script> 
    (function() { 
    Polymer({ 
     is: 'my-elemnt', 

     ready: function(){ 
     // get attribute value 
     }); 
    })(); 
    </script> 
</dom-module> 

我可以訪問模板中的屬性,但不知道如何將它使用JavaScript訪問。

+1

您有一個錯字:您的錯字是:>,':my-elemnt', –

回答

3

裏面的元素它會this.username但你可能需要將它添加到性能爲它工作

Polymer({ 
    is: 'my-element', 
    properties: { 
    username: { 
     type: Object, 
     observer: '_updateUsername' 
    } 
    }, 
    _updateUsername: function() { 
    // use this.username 
    } 
}); 
+0

我得到undefined,no te的用戶名屬性是一個對象而不是一個字符串。如果我將它轉換爲一個字符串,但它不起作用。 – jamjam

+0

更改類型爲對象 –

+0

nope仍然未定義我害怕。 – jamjam

1
<link rel="import" href="polymer/polymer.html"/> 
<dom-module id="my-element" username> 
    <style> 
     :host { 
      display: block; 
     } 
    </style> 
    <template> 
     <p>{{username.name}}</p> 
    </template> 

</dom-module> 
<script> 
    (function() { 
     Polymer({ 
      is: 'my-elemnt', 
      properties: { 
       username: { 
        type: Object, 
        notify: true 
       } 

      }, 
      ready: function() { 
       console.log(this.username); 
      } 
     }); 
    })(); 
</script> 

如果你還沒有宣佈它會記錄屬性 - 未定義
對於有關新的申報方式檢查的更多信息 - https://www.polymer-project.org/1.0/docs/devguide/properties.html

+0

呃。這個答案肯定是錯誤的。首先,在''標籤內添加'username'屬性的語法不正確。此外,爲'username'屬性設置'notify:true'用於向上傳播更改** - 它與訪問屬於它自己範圍內的屬性無關。 – zerodevx