[英]Handlebars RegisterHelper with Ember Error
I'm pretty lost after trying numerous different things. 在尝试了许多不同的事情之后,我很迷茫。 I am building an Ember site and inside of one of my Handlebars templates, I want to display a link only if a condition is true.
我正在建立一个Ember网站,并且在我的一个Handlebars模板中,我只想在条件为真时显示链接。 Here is my template.
这是我的模板。
<script type="text/x-handlebars" data-template-name="project">
<div class="project-container">
{{is_external model.url model.title}}
</div>
</script>
Now, my registerHelper in my js file: 现在,我的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>";
}
});
The error I keep receiving however, is: Uncaught TypeError: Cannot read property 'isHelperFactory' of undefined coming from my ember.js file. 但是,我一直收到的错误是: Uncaught TypeError:无法读取来自我的ember.js文件的未定义属性'isHelperFactory' 。
Ideally, I would prefer to just return true or false from the helper to keep the Html out of my helper function but first I just need some help getting it working. 理想情况下,我希望仅从帮助程序返回true或false,以使Html不在我的帮助程序函数中,但是首先我需要一些帮助使其正常运行。
I am including ember, ember_compiler, and handlebars on my page as well. 我的页面上也包括了ember,ember_compiler和把手。
My understanding of Ember is that since even 1.x, Ember included its own instance of Handlebars, so your external instance might be interfering. 我对Ember的理解是,即使是1.x版本,Ember也包含了自己的Handlebars实例,因此您的外部实例可能会造成干扰。
The Ember v2.2.0 documentation on templates says to use Ember.Helper.helper
, as does v1.13.0. 模板上的Ember v2.2.0文档说要使用
Ember.Helper.helper
,与v1.13.0一样。 Maybe give that a try and see if it helps. 也许尝试一下,看看是否有帮助。
What is the version of your Ember? 您的Ember版本是什么?
When i generate helper Ember uses syntax like this 当我生成助手时,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);
In the template 在模板中
{{is-equal item.selection selection}}
And if you want to use html within helper 如果您想在帮助程序中使用html
you need to return 你需要回来
yourHtml.htmlSafe();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.