Polymer在javascript中获取参数值

时间:2015-10-28 18:50:52

标签: javascript html polymer

我定义了一个自定义元素" wineItem"

http://pastebin.com/VWh2Dk4J(我无法在此处粘贴代码)

当我想在页面中调用此元素时,我会执行以下操作:

            <wine-item id_wine={{params.id_wine}}></wine-item>

问题在于&#34; id_wine&#34;在&#34;葡萄酒项目&#34;在ready函数中未定义,但在html值中显示正确。

我该怎么办?

谢谢。

3 个答案:

答案 0 :(得分:0)

ready函数中未定义id-winewine-item的值,因为您没有将其显式创建为wine-item元素的属性。您的元素应如下所示:

&#13;
&#13;
<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;
&#13;
&#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);
    }