2015-09-26 2 views
0

Я пытаюсь найти способ, чтобы вернуть это:JS - Метеор возвращающие несколько методов

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

Как 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'} 
    ]; 
    }) 
}); 

В этом случае каждая строка имеет объект, который содержит все элементы, которые вы хотите отобразить в шаблоне. В то время как здесь список помощник определяет все данные, при нормальном использовании вы имели бы сбор данных, который сохраняется в 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}} для восьмеричной и т.д ...

Смежные вопросы