2015-09-14 106 views
1

我試圖通過對象數組使用聚合物1.0 <iron-ajax>一個DOM重複的內部

<template is="dom-repeat" as="plugin" items="{{plugins}}">

循環,並且然後爲每個此數組中的對象的生成的URL來獲取數據從。我想將這些數據放入頁面。

我的元素看起來是這樣的:

<link rel="import" href="../../bower_components/polymer/polymer.html"> 
 
<script src="../../scripts/plugins.js"></script> 
 

 
<dom-module id="sidenav-list"> 
 
\t <template> 
 
\t \t <template is="dom-repeat" as="plugin" items="{{plugins}}"> 
 
\t \t \t <template is="dom-if" if="{{plugin.sidenav}}"> 
 
\t \t \t \t <iron-ajax auto url="{{_generatePluginUrl(plugin)}}" handle-as="text" last-response="{{plugin.ajax}}"></iron-ajax> 
 
\t \t \t \t <html-echo html="{{plugin.ajax}}"></html-echo> 
 
\t \t \t </template> 
 
\t \t </template> 
 
\t </template> 
 
\t <script> 
 
\t \t Polymer({ 
 
\t \t \t is: 'sidenav-list', 
 
\t \t \t ready: function() { 
 
\t \t \t \t this.plugins = allAddons(); 
 
\t \t \t }, 
 
\t \t \t _generatePluginUrl: function(plugin) { 
 
\t \t \t \t var newURL = "./plugins/" + plugin.folder + "/" + plugin.file; 
 
\t \t \t \t return newURL; 
 
\t \t \t }, 
 
\t \t }); 
 
\t </script> 
 
</dom-module>

的問題是,是我設置last-response="pluginAjax"我結束了重複,當我把它設置爲plugin.ajax結果就是不確定的。

回答

2

從文檔(通過註釋) - 鏈接到這裏,因爲文檔查看器不允許直接鏈接到dom-repeat文檔頁面。

https://github.com/Polymer/polymer/blob/0f8483da48dc3747f3c4bdd439b95c4bce2897d7/src/lib/template/dom-repeat.html#L59s

您可以在您的內部響應處理的功能使用

event.model.set('item.ajax, event.detail.response) 

實現這一目標。

即: 如果你的鐵AJAX是這樣的:

<iron-ajax auto url="{{_generatePluginUrl(plugin)}}" handle-as="text" 
      on-response="_hresponse"></iron-ajax> 

然後你在你的元素管理器看起來像:

Polymer({ 
    //... 
    _hresponse: function(request){ 
     request.model.set('plugin.ajax', request.detail.response); 
    } 
}); 
+0

謝謝,精美的作品:d – Irontiga