首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTMLBars +HTMLBars --将参数传递给帮助程序

HTMLBars +HTMLBars --将参数传递给帮助程序
EN

Stack Overflow用户
提问于 2015-04-22 13:05:40
回答 2查看 838关注 0票数 0

我正在尝试将一个参数从我的HTMLBars模板传递给帮助程序。

根据文档,我创建了一个助手并显式地注册了该助手:

代码语言:javascript
复制
export default Ember.HTMLBars.makeBoundHelper('is-foo', function(value, options) {
   console.log("value: "+value);
});

但是我得到了一个错误" error :断言失败: makeBoundHelper生成的帮助程序不支持与块一起使用“

因此,我尝试使用Ember.HTMLBars.helper和Ember.HTMLBars.registerHelper作为建议的here,但我得到了错误"TypeError: Ember.default.HTMLBars.helper不是一个函数“

如果我不明确地提高帮助者的能力:

代码语言:javascript
复制
export default function(value, options) {
   console.log("value: "+value);
};

然后,我可以传递一个参数,但它不会得到解析,并注销我传递的文字文本。

因此,我尝试了概述here的解决方案,但它似乎不适用于CLI

我想要的结果是根据发送给助手的参数的值动态地选择一个组件。我的HTMLBars代码看起来如下:

代码语言:javascript
复制
{{#each foo in model}}
  {{is-foo parameter}}
    {{a-component}}
  {{else}}
    {{another-component}}
  {{/is-foo}}
{{/each}}

我不知道下一步该怎么办。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-22 15:42:50

在Ember CLI项目中这样做,因为助手文件名是助手名

代码语言:javascript
复制
export default Ember.HTMLBars.makeBoundHelper(function(value, options) {

而不是

代码语言:javascript
复制
export default Ember.HTMLBars.makeBoundHelper('is-foo', function(value, options) {

编辑

应@TheCompiler的请求,这里是作为回答的建议。

做一些类似于HTMLBars的事情

代码语言:javascript
复制
{{if is_parameter}}
  {{a-component}}
{{else}}
  {{another-component}}
{{/if}}

在控制器或组件中,计算出的parameter属性

代码语言:javascript
复制
is_parameter: function () {
  var pm = this.get('parameter');

  return (your condition for `pm`)? true : false;
}.property('parameter')
票数 0
EN

Stack Overflow用户

发布于 2015-04-22 18:15:08

您想要的行为是在this answer中实现的。

如果您想知道component助手是如何实现的,您可以在这里查看它的源代码:helpers/component.js (目前是第63行)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29798507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档