2015-04-01 46 views
0
file objs.json: 
{ 
    "id": 1, 
    "name": "My obj", 
    "description": "My obj Desc" 
} 

後變量未更改文件我-element.html:聚合物 - Ajax調用

<polymer-element name="my-obj"> 
<template> 
    <core-ajax id="ajax" auto url="objs.json" 
      on-core-response="itemsLoaded" handleAs="json"></core-ajax> 
    <p>{{obj.name}}</p> 
</template> 
<script type="text/javascript"> 
    Polymer({ 
     ready: function() { 
      this.$.ajax.addEventListener("core-response", function(e) { 
       this.obj= e.detail.response; 
      }); 
     }, 
     itemsLoaded: function() { 
      console.log(this.$.ajax);//.response 
     } 
    }); 

</script> 

爲什麼我{{obj.name}}不會改變!?!?!

回答

0

試試這個

<polymer-element name="my-obj"> 
<template> 

    <core-ajax 
     id="ajax" 
     url="objs.json" 
     on-core-response="{{itemsLoaded}}" 
     handleAs="json" 
    ></core-ajax> 

    <p>{{obj.name}}</p> 

</template> 
<script> 
    Polymer({ 
     ready: function() { 
      this.$.ajax.go(); 
     }, 
     itemsLoaded: function(e) { 
      this.obj = e.detail.response; 
     } 
    }); 
</script> 
+0

具有u試試您的解決方案!如果你嘗試:itemsLoaded:function(e){this.obj = e.detail.response;的console.log(this.obj); }你會看到itemsLoaded:函數沒有調用!我的this.obj仍然爲空? TKS! – Dung 2015-04-01 10:07:33

+0

您需要在「itemsLoaded」上添加「{{itemsLoaded}}」。現在看 – wirlez 2015-04-01 10:10:51

0

我發現我的錯誤:

<core-ajax id="ajax" auto url="objs.json" 
     on-core-response="itemsLoaded" handleAs="json"></core-ajax> 

應該是:

<core-ajax id="ajax" auto url="objs.json" 
     on-core-response="{{itemsLoaded}}" handleAs="json"></core-ajax>