2015-05-17 43 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

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