0

在尝试了许多不同的事情后,我很迷茫。我正在构建一个 Ember 站点,并且在我的 Handlebars 模板之一中,我只想在条件为真时显示链接。这是我的模板。

<script type="text/x-handlebars" data-template-name="project">
    <div class="project-container">
        {{is_external model.url model.title}}
    </div>
</script>

现在,我的 js 文件中的 registerHelper :

Handlebars.registerHelper('is_external', function(url, title, options) {
  if (url.indexOf("codepen") < 0) {
      return "<p class='view-external-link'>"+
            "<a href='{{url}}'' aria-label='View {{title}}'' target='_blank'>Visit Site</a>"+
            "</p>";
  }
});

然而,我一直收到的错误是: Uncaught TypeError: Cannot read property 'isHelperFactory' of undefined from my ember.js 文件。

理想情况下,我宁愿只从助手返回 true 或 false 以使 Html 远离我的助手函数,但首先我只需要一些帮助才能使其正常工作。

我的页面上也包含了 ember、ember_compiler 和车把。

4

2 回答 2

0

您的 Ember 版本是多少?

当我生成助手 Ember 使用这样的语法

import Ember from "ember";

// http://emberjs.com/deprecations/v1.x/#toc_ember-select

export function checkEquality([leftSide, rightSide]) {
    return leftSide === rightSide;
}

export default Ember.Helper.helper(checkEquality);

在模板中

{{is-equal item.selection selection}}

如果你想在 helper 中使用 html

你需要返回

yourHtml.htmlSafe();
于 2015-12-01T07:29:19.137 回答
0

我对 Ember 的理解是,即使是 1.x,Ember 也包含了自己的 Handlebars 实例,因此您的外部实例可能会干扰。

关于模板的Ember v2.2.0 文档说使用Ember.Helper.helper,v1.13.0 也是如此。也许试一试,看看它是否有帮助。

于 2015-12-01T00:47:17.010 回答