我正试图找到一种方法来回复:
list: function() {
return binary.find(), o8.find(), dec.find(), h16.find();
},
作为此模板的一部分
<template name="convert">
<div class="container-fluid">
<button id="buttonchange" class="btn btn-info
{{buttonchangeclass}}">Convert Decimal</button>
{{#each list}}
<div class="row, rowbox">
<h5 class="base">Number: <span class="bd">{{decimal}}</span></h5>
<h5 class="base">Binary: <span class="bd">{{base2}}</span></h5>
<h5 class="base">Octal: <span class="bd">{{octal}}</span></h5>
<h5 class="base">Hex: <span class="bd">{{hex}}</span></h5>
<button id="buttonrem2" class="btn btn-warning {{buttonrem2class}}">Clear</button>
</div>
{{/each}}
</div>
</template>
我对这两个系统都很陌生。所以任何想法都会很棒。
答案 0 :(得分:0)
因为 clippy 可能会说看起来你正试图建立一个角色表!
让我们以两种不同的方式做到这一点,以便我们可以说明Meteor,javascript和spacebars模板的不同方面。
对象数组
Template.convert.helpers({
list: function(){
return [
{ base2: '0000', octal: '00' , decimal: 0 , hex: '00'},
{ base2: '0001', octal: '01' , decimal: 1 , hex: '01'},
{ base2: '1000', octal: '10' , decimal: 8 , hex: '08'},
{ base2: '1111', octal: '17' , decimal: 15 , hex: '0F'}
];
})
});
在这种情况下,每个行都有一个对象,其中包含您希望在模板中显示的所有元素。虽然 list 帮助程序定义了所有数据,但在正常使用中,您有一个集合数据,这些数据在MongoDB中持久存在并且您使用 Collection.find()返回游标。
用于格式化的辅助函数
由于您只是在进行格式转换,因此存储每个数字的每种格式都有点过分。让我们使用帮助器将数字从十进制转换为其他基数:
Template.convert.helpers({
list: function(){
return [0,1,8,15]; // same data as last time, but decimal only
},
base2: function(){
return this.toString(2);
},
octal: function(){
return this.toString(8);
},
hex: function(){
return this.toString(16);
}
});
现在,您可以轻松处理可能从列表帮助程序返回的任何数字。
但这仍然有点冗长。如果你想在像7或12号这样的疯狂基地中显示数字怎么办?您可以编写一个辅助函数,将基数作为参数:
Template.convert.helpers({
rebase: function(base){
return this.toString(base);
})
});
然后在模板中使用它,{{rebase 8}}
用于八进制等...