2015-05-17 39 views
-6

以下是我收集的樣本文件:如何獲得數組對象的對象

{ 
    "_id" : "0001", 
    "name" : "Meteor", 
    "categoryId" : "001", 
    "period" : 4, 
    "price" : 68, 
    "des" : "សម្រាប់ការចុះឈ្មោះ៥០នាក់ដំបូង", 
    "paymentMethod" : { 
     "oneMonth" : 100, 
     "threeMonth" : 150, 
     "sixMonth" : 375, 
     "year" : 750, 
     "midTerm" : 200, 
     "term" : 750 
    } 
} 

我如何從"paymentMethod"鍵的值在選擇框顯示?

回答

-2
<select> 
    {{#each methods}} 
     <option value={{value}}>{{method}}</option> 
    {{/each}} 
</select> 

Template.body.helpers({ 
    methods: function() { 
     var ArrMethods = []; 
     var objPayment = MyCollection.findOne({_id: '0001'}); 
     $.each(objPayment.paymentMethod, function (key, value) { 
      ArrMethods.push({ 
       method: key, 
       value : value 
      }); 
     }); 
     return ArrMethods; 
    } 
}); 
+0

感謝您的回答,它工作正常。 –

+0

@SylvainLeroux這個問題很簡單,所以答案是。另一件事是我提供的代碼是可讀的(代碼說話)。問題是在* how *(code)而不是* why *(如果提問者或回答者要求的情況下足夠公平)的情況下。 –

0
Template.name.helpers({ 
    'selectOptions': function() { 
     var obj = MyCollection.findOne({_id: '0001'}); 
     var options = obj && obj.paymentMethod; 
     var helperReadyOptions = []; 
     Object.keys(options).forEach(function(key) { 
      helperReadyOptions.push({ 
       label: key, 
       value: options[key] 
      }); 
     }); 
     return helperReadyOptions; 
    } 
}); 

<template name="name"> 
    <select> 
     {{#each selectOptions}} 
      <option value="{{value}}">{{label}}</option> 
     {{/each}} 
    </select> 
</template> 
+2

也許你應該考慮在你的代碼中加入一些意見和/或增加了一些解釋,你對你_why_這樣做的答案。 –

+0

感謝您的回答,它工作正常。 –