2016-11-17 6 views
0

私はapp-routeのパラメータをundefinedに移動しました。私はそのパラメータをファイルに表示することができますが、カスタム要素では定義されていません。以下は私のコードであり、それを修正する方法を調べるのを助けてください。ありがとう。ポリマーがカスタム要素へのapp-routeのデータを渡していません

カスタム要素ファイルで、getidが不定になりました。

マイファイル

<app-route 
    route="[[route]]" 
    pattern="/:slug/:id" 
    data="{{routeData}}"></app-route> 

    <!-- display correctly --> 
    [[routeData.id]] 

<myelement-http-get 
    id="getCategoryData" 
    getid="[[routeData.id]]" 
    geturl="http://localhost:9000/polymer/category/" 
    jsonobject="{{jsonobject}}" 
    failure="{{failure}}"></myelement-http-get> 

カスタム要素それはないですので、あなたがそれらのプロパティを操作したいと思いますどこgetidgeturlための効果は、readyコールバックした後が起こるの結合

<script> 
    Polymer({ 
     is: 'myelement-http-get', 

     properties: { 
     geturl: String, 

     getid: String, 

     jsonobject: { 
      type: Object, 
      notify: true 
     }, 

     failure: { 
      type: Boolean, 
      notify: true, 
      readOnly: true 
     } 

     }, 

     ready: function() { 
     /* undefined found this.getid */ 
     this.$.ajaxData.url = this.geturl + this.getid; 
     this.$.ajaxData.generateRequest(); 
     }, 

     handleResponse: function (data) { 
     this.jsonobject = data.detail.response; 
     } 
    }); 
</script> 

答えて

1

データ。

代わりにcomplex observerを使用して、getidgeturlを観察する必要があります。このオブザーバは、両方のプロパティが定義および変更されたときにのみ呼び出されます(この動作はPolymer 2.0ではわずかに変更されます)。

あなたはreadyから変更を削除し、ここに示したように、複雑なオブザーバーを追加する必要があります

​​
+0

おかげで、それは部分的に正しいです。オブザーバー:['_generateRequest(geturl、getid)']、 '3番目のページを取得したときに更新できません。 'geturl'は常に第2ページのURLを表示します。 – ppshein

関連する問題