2016-08-24 39 views
2

我在肥皂服務工件中添加了一個新屬性,用於存儲無限制的服務操作(它就像聯繫人或端點表)如何在WSO2 GREG的存儲中顯示屬性表?

我的問題是如何在Store中顯示屬性表?

我試圖edditing資產attributes.hbs把新的屬性這樣

<div class="es-col-lg-12 col-lg-12"> 
    <h4>{{t "Operaciones del Servicio Web"}}</h4><hr> 


    {{#each this.attributes.operaciones_nombre }} 


    <div class="es-col-lg-12 col-lg-12 divrow"> 
     <div class="col-lg-2"><b>{{t "Nombre"}} :</b></div> 
     <div class="col-lg-10">{{ this.attributes.operaciones_nombre}}</div> 
    </div> 

    {{/each}} 

但問題是,它不顯示this.attributes.operaciones_nombre當它是#each內,即使我用this.attributes.operaciones_nombre。[0]只顯示第一個元素

爲什麼環路只有{{#each this.attributes.operaciones_nombre}}而不是{{#each this.attributes.operaciones}}工作?我需要在asset.js中定義它,以及我如何做到這一點?

+0

您使用的是5.2.0嗎?下面的答案解決您的問題? – tkr

回答

1

for contacts use this。我測試下面的代碼restservice和它的工作很好。對於端點和您的情況,您可以使用相同的。

在相關asset.js添加下面asset.renderer

asset.renderer = function (ctx) { 
    return { 
     pageDecorators: { 
      jsonFormatter: function (page) { 
       if (page.meta.pageName === 'details') { 
        var contacts = page.assets.attributes.contacts_entry; 
        if (contacts) { 
         var contacts_entry = []; 
         if (contacts.constructor === Array) { 
          for (var index in contacts) { 
           var contact = contacts[index].split(':'); 
           var contact_entry = {}; 
           contact_entry.name = contact[0]; 
           contact_entry.value = contact[1]; 
           contacts_entry.push(contact_entry); 
          } 
         } else { 
          var contact = contacts.split(':'); 
          var contact_entry = {}; 
          contact_entry.name = contact[0]; 
          contact_entry.value = contact[1]; 
          contacts_entry.push(contact_entry); 
         } 
         page.assets.attributes.contacts_entry = contacts_entry; 
        } 
       } 
      } 
     } 
    }; 
}; 

注意:如果已經有這裏定義pageDecorators,分開使用逗號這些方法和添加上述方法。

資產attributes.hbs下面添加行,

<div class="col-lg-12"> 
     <h4>Contacts</h4><hr> 
     <div class="col-lg-12 table table-striped table-hover divrow"> 
      {{#each attributes.contacts_entry}} 
      <div class="col-lg-2">{{name}}</div> 
      <div class="col-lg-10">{{value}}</div> 
      {{/each}} 
     </div> 
    </div> 

注:在您的資產擴展,你需要有資產attributes.hbs(/ {} GREG_HOME /庫/部署/server/jaggeryapps/store/extensions/assets/{SHORTNAME}/themes/store/partials/asset-attributes.hbs)文件覆蓋位於greg-store-defaults的默認文件。

請找出版商和存儲的樣本截圖,

出版商

Pub view

商店

store view

注意:是一些對齊問題。 CSS /引導! ;)

請參考this blog post

注意:下次請爲相關屬性添加rxt定義。

+0

謝謝!但我不認爲這部分_var contacts = page.assets.attributes.contacts_entry; _。我應該把_page.assets.attributes.operaciones_entry_(沒有工作,測試它)? _entry_來自哪裏? – Skeitho

+0

@Daniels你是否先嚐試過? 順便說一句,測試和工作正常,附加截圖以及。 :) – tkr

+0

據我瞭解你的情況應該是'page.assets.attributes.operaciones_entry' – tkr