在 Polymer 1.0 中实现全局变量
Implement global variables in Polymer 1.0
我正在尝试复制 Polymer 0.5 文档的以下部分中的示例,它使用 MonoState 模式在 Polymer 中实现全局变量:
http://www.polymer-project.org/0.5/docs/polymer/polymer.html#global
我正在尝试使用 Polymer 1.0 使它正常工作,但运气不佳。
这是我的 app-globals
和 my-component
自定义元素的代码。除了 Polymer 1.0 中的语法略有不同外,它与上面的 link 相同。例如使用 dom-module
而不是 polymer-element
.
<dom-module name="app-globals">
<script>
(function() {
// these variables are shared by all instances of app-globals
var values = {
firstName: 'John',
lastName: 'Smith'
}
Polymer({
is: 'app-globals',
ready: function() {
// make global values available on instance.
this.values = values;
}
});
})();
</script>
</dom-module>
<dom-module name="my-component">
<template>
<app-globals id="globals"></app-globals>
<div id="firstname">{{$.globals.values.firstName}}</div>
<div id="lastname">{{$.globals.values.lastName}}</div>
</template>
<script>
Polymer({
is: 'my-component',
ready: function() {
console.log('Last name: ' + this.$.globals.values.lastName);
}
});
</script>
</dom-module>
用法很简单:
<my-component></my-component>
最初我遇到了错误 "Cannot read property '$' of undefined"。因此,我在 my-component
自定义元素中将 div
内容 $.globals.values.firstName
替换为 this.$.globals.values.firstName
(对于 lastName
字段也是如此)。
但是 div 不显示名字和姓氏。看起来 this.$.globals.values.firstName
和 this.$.globals.values.lastName
在呈现 div 时未设置。
希望能得到一些帮助来解决这个问题。
这是工作示例,Plunk
properties: {
values: {
type: Object,
notify: true
}
},
ready: function() {
// make global values available on instance.
this.values = {
firstName: 'John',
lastName: 'Smith'
}
}
我正在尝试复制 Polymer 0.5 文档的以下部分中的示例,它使用 MonoState 模式在 Polymer 中实现全局变量:
http://www.polymer-project.org/0.5/docs/polymer/polymer.html#global
我正在尝试使用 Polymer 1.0 使它正常工作,但运气不佳。
这是我的 app-globals
和 my-component
自定义元素的代码。除了 Polymer 1.0 中的语法略有不同外,它与上面的 link 相同。例如使用 dom-module
而不是 polymer-element
.
<dom-module name="app-globals">
<script>
(function() {
// these variables are shared by all instances of app-globals
var values = {
firstName: 'John',
lastName: 'Smith'
}
Polymer({
is: 'app-globals',
ready: function() {
// make global values available on instance.
this.values = values;
}
});
})();
</script>
</dom-module>
<dom-module name="my-component">
<template>
<app-globals id="globals"></app-globals>
<div id="firstname">{{$.globals.values.firstName}}</div>
<div id="lastname">{{$.globals.values.lastName}}</div>
</template>
<script>
Polymer({
is: 'my-component',
ready: function() {
console.log('Last name: ' + this.$.globals.values.lastName);
}
});
</script>
</dom-module>
用法很简单:
<my-component></my-component>
最初我遇到了错误 "Cannot read property '$' of undefined"。因此,我在 my-component
自定义元素中将 div
内容 $.globals.values.firstName
替换为 this.$.globals.values.firstName
(对于 lastName
字段也是如此)。
但是 div 不显示名字和姓氏。看起来 this.$.globals.values.firstName
和 this.$.globals.values.lastName
在呈现 div 时未设置。
希望能得到一些帮助来解决这个问题。
这是工作示例,Plunk
properties: {
values: {
type: Object,
notify: true
}
},
ready: function() {
// make global values available on instance.
this.values = {
firstName: 'John',
lastName: 'Smith'
}
}