我有帮手istrue.js:
import Ember from 'ember';
export default Ember.Helper.helper(function() {
return true;
});
在我的模板中,我使用:
{{#if istrue}}
true
{{else}}
false
{{/if}}
因此,在浏览器窗口中,我总是得到" false"。
问题出在哪里?
答案 0 :(得分:2)
isTrue
指的是与模板相关的属性(在这种情况下,它可能是控制器的属性或组件的属性。
由于isTrue
未定义,{{if}}
帮助程序会评估 false 分支。
我想你想要实现的目标如下:
{{istrue}}
或
{{istrue param}}
在第二种情况下,将参数添加到辅助函数:
import Ember from 'ember';
export default Ember.Helper.helper(function(param) {
return true;
});
之后也应该可以组合:
{{#if (istrue param)}}
更多详细信息,请访问:Ember Guides - Writing own helpers
答案 1 :(得分:1)
请以这种方式使用余烬帮手。将以下代码粘贴到istrue.js帮助文件中。
import Ember from 'ember';
export function istrue(/*, hash*/) {
return true;
}
export default Ember.Helper.helper(istrue);
而不是安装以下插件
ember install ember-truth-helpers
这个插件会在ember模板中给你真实条件
现在,您可以在模板文件中使用以下代码来获取结果
{{#if (eq (istrue) true)}}
true
{{else}}
false
{{/if}}
它将返回true,因为helper返回true。
https://github.com/jmurphyau/ember-truth-helpers