我定义了一个自定义元素" wineItem"
http://pastebin.com/VWh2Dk4J(我无法在此处粘贴代码)
当我想在页面中调用此元素时,我会执行以下操作:
<wine-item id_wine={{params.id_wine}}></wine-item>
问题在于&#34; id_wine&#34;在&#34;葡萄酒项目&#34;在ready函数中未定义,但在html值中显示正确。
我该怎么办?
谢谢。
答案 0 :(得分:0)
ready函数中未定义id-wine
内wine-item
的值,因为您没有将其显式创建为wine-item
元素的属性。您的元素应如下所示:
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<dom-module name="wine-item">
<template>
<span>{{id_wine}}</span>
</template>
<script>
Polymer({
is:'wine-item',
// Adding properties
properties:{
id_wine:String // type can be Object Array or Number , refers to polymer doc
},
ready: function()
{
// Now you can access id_wine in your ready function with `this`
this.id_wine='idtest';
// $ allow to access element in the local DOM like <span id='id_wine'></span>
// this.$.id_wine = this.id_wine;
/* console.log(this.id_wine);
console.log(this.$.id_wine)*/
}
});
</script>
</dom-module>
&#13;
<wine-item id-wine="newIdTest"></wine-item>
&#13;
现在,如果您的目的是创建一个id为Javascript id
的元素,那么就不可能在使用像原生html组件这样的元素时在html
中完成
<wine-item id="id-of-my-element"></wine-item>
答案 1 :(得分:0)
<dom-module name="wine-item">
错了,这应该是:
<dom-module id="wine-item">
也许这就是你的变量未定义的原因
要使用javascript访问变量,您必须按如下方式使用:
this.yourVariable
我的不好,我不知道可以使用“name”而不是“id”。
<dom-module name="hello-test">
<template>
hello <span>{{name}}</span>
<button on-tap="showData">show data</button>
</template>
<script>
Polymer({
is:"hello-test",
name:{
type:String
},
showData: function(){
console.log(this.name);
},
});
</script>
</dom-module>
<hello-test name="Alex"></hello-test>
答案 2 :(得分:0)
我明白了。
问题在于,有时就绪功能在准备就绪时不会加载。
只需放一个计时器就可以了!
ready: function()
{
this.async(function ()
{
....
},50);
}