来自助手的 EmberJS 条件不工作

EmberJS condition from helper not working

我有帮手istrue.js:

import Ember from 'ember';

export default Ember.Helper.helper(function() {
  return true;
});

在我的模板中我使用:

{{#if istrue}}
    true
{{else}}
    false
{{/if}}

所以,在浏览器中 window 我总是得到 "false"。

问题出在哪里?

isTrue指的是模板相关的属性(这里可以是controller的属性或者component的属性.

由于您的 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

请这样使用ember助手。将以下代码粘贴到您的 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}}

它将 return 为真,因为助手 return 为真。

https://github.com/jmurphyau/ember-truth-helpers