【发布时间】:2014-10-18 14:58:59
【问题描述】:
我在 Angular 控制器中有一个具有一些属性的对象变量。我想创建一系列聚合物元素,以该变量作为属性名称并以特定格式(取决于类型和其他属性)显示它们。类似于下一个示例:
<polymer-element name="x-property" attributes="data property">
<template>
{{data.labels[property]}}: {{data[property]}}
</template>
<script>
Polymer('x-property', {
data: {}
});
</script>
</polymer-element>
然后我就这样使用它:
<x-property data="{{person}}" property="firstName"></x-property>
效果很好。但是现在我想避免在所有元素中指定属性数据。阅读 Polymer 文档,我发现可以有全局变量。我按照示例创建了 app-globals 元素,如 api 指南中所示,但是当我尝试访问该属性时,我得到的不是对象“person”,而是文本“{{person}}”
<polymer-element name="app-globals" attributes="values">
<script>
(function () {
var values = {};
Polymer('app-globals', {
ready: function () {
this.values = values;
for (var i = 0; i < this.attributes.length; ++i) {
var attr = this.attributes[i];
values[attr.nodeName] = attr.value;
}
}
});
})();
</script>
</polymer-element>
<polymer-element name="x-property" attributes="property">
<template>
<app-globals id="globals" values="{{globals}}"></app-globals>
{{globals.data.labels[property]}}: {{globals.data[property]}}
{{globals.data}}
</template>
<script>
Polymer('x-property', {
});
</script>
</polymer-element>
所以在我的 html 中我有:
<app-globals data="{{person}}"></app-globals>
<x-property property="firstName"></x-property>
而我得到的结果是这样的:
:
{{person}}
我是否可以像在第一个示例中那样工作?
【问题讨论】:
标签: javascript angularjs polymer globals