2017-02-09 2 views
2

Непонятно, как перебирать свойства контроллера в шаблоне. Я наткнулся на метод:Каков правильный способ перебора свойств контроллера в шаблоне?

{{#each-in this as |key value|}} 
    {{key}}: {{value}} 
{{/each-in}} 

и такого рода работ, но это выводит некоторые внутренние функции в дополнение к свойствам:

q: shirt 
search_page: 3 
_qpDelegate: function (prop, value) { var qp = map[prop]; _this._qpChanged(prop, value, qp); return _this._activeQPChanged(map[prop], value); } 

Мой контроллер выглядит следующим образом:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 

    queryParams: [ 
     'q', 
     'search_page' 
    ], 
    q: 'shirt', 
    search_page: 3 

}); 

Есть ли способ итерации и исключения функций?

+0

В чем вы нуждаетесь? Одним простым решением может быть отфильтровать функции с помощью специального помощника. '{{# each-in this as | значение ключа |}} {{#if (значение не-функции)}} {{key}}: {{значение}} {{if}} {{/ each-in}} ' – nem035

+0

Параметры запроса API хранят ключи/значения в свойствах контроллеров. прямо сейчас я просто хочу проверить различные действия на самих свойствах, распечатав их все, не указывая их. – tarponjargon

+0

Вы пытаетесь использовать '{{debugger}}' внутри своего вида для этой цели? а затем вы можете проверить значение свойства внутри консоли –

ответ

1

Поскольку представляется вам нужно только сделать это для отладки, один из возможных решений могло бы стать создание пользовательского помощника, чтобы отфильтровать функции (или что-то еще вы хотите): шаблон

// helpers/debug-filter.js 
export function debugFilter([value]) { 
    return Ember.typeOf(value) !== 'function'; 
} 

export default Ember.Helper.helper(formatCurrency); 

вашего контроллера

{{#each-in this as |key value|}} 
    {{#if (debug-filter value)}} 
    {{key}}: {{value}} 
    {{/if}} 
{{/each-in}} 
+1

большое спасибо! – tarponjargon

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