有沒有辦法獲取自定義元素上所有綁定屬性名稱的列表,而不訴諸Polymer對象的屬性?列出聚合物中的自定義元素綁定
<custom-element foo="{{bar}}" baz="{{qux}}"></custom-element>
上面應該有一個列表,綁定/屬性,價值:
["foo", "baz"];
有沒有辦法獲取自定義元素上所有綁定屬性名稱的列表,而不訴諸Polymer對象的屬性?列出聚合物中的自定義元素綁定
<custom-element foo="{{bar}}" baz="{{qux}}"></custom-element>
上面應該有一個列表,綁定/屬性,價值:
["foo", "baz"];
你可以得到所有與element.properties
聚合物元素上定義的屬性。
假設我們有以下Polymer
定義:
Polymer({
is: "x-element",
properties: {
foo:{
type: Object
},
baz:{
type: Object
}
}
});
而且它已經包含在HTML文件中:
<x-element id="x" foo="{{bar}}" baz="{{qux}}"></x-element>
爲了讓我們可以做以下的propreties:
var xElemProperties = document.querySelector('#x').properties;
這將包含所有的屬性。不需要在<x-element>
上設置屬性值就可以找到。如果您只想獲取已在<x-element>
上設置的屬性。您可以將.properties
數組與「element.attributes」數組進行比較。 .attributes
將包含在元素上設置的所有屬性。它也將包含id
和其他類似的領域。
演示(窺視瀏覽器控制檯):
<!doctype html>
<head>
<meta charset="utf-8">
<!---- >
<base href="https://polygit.org/components/">
Toggle below/above as backup when server is down
<!---->
<base href="https://polygit2.appspot.com/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
<link rel="import" href="paper-button/paper-button.html">
</head>
<body>
<dom-module id="x-element">
<template>
</template>
<script>
(function(){
Polymer({
is: "x-element",
properties: {
foo:{
type: Object
},
baz:{
type: Object
}
}
});
})();
</script>
</dom-module>
<x-element id="x" foo="{{bar}}" baz="{{qux}}"></x-element>
<x-element id="z"></x-element>
<script>
var xElemProperties = document.querySelector('#x').properties;
console.log(xElemProperties);
var zElemProperties = document.querySelector('#z').properties;
console.log(zElemProperties);
</script>
</body>
其中一個要求是必須事先不知道屬性名稱來收集屬性。所以在這種情況下,foo和baz可以被傳遞到
'[富,巴]'或'[富,巴茲]'? – winhowes
'[foo,baz]'固定在OP –
有趣的問題。出於好奇,爲什麼你需要這些信息? –