目前还不完全清楚如何迭代模板中的 Controller 属性。我偶然发现了一个方法:
{{#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); }
我的 Controller 看起来像:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: [
'q',
'search_page'
],
q: 'shirt',
search_page: 3
});
有没有办法迭代和排除函数?
最佳答案
由于看起来您只需要出于调试目的执行此操作,因此一种可能的解决方案是创建一个自定义帮助程序来过滤掉函数(或您想要的任何其他内容):
// helpers/debug-filter.js
export function debugFilter([value]) {
return Ember.typeOf(value) !== 'function';
}
export default Ember.Helper.helper(formatCurrency);
你的 Controller 模板
{{#each-in this as |key value|}}
{{#if (debug-filter value)}}
{{key}}: {{value}}
{{/if}}
{{/each-in}}
关于javascript - 在模板中迭代 Controller 属性的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42129264/