从另一个助手呼叫一个助手

杰夫

我有一个模板,其中包含其项目的背景图片:

{{#each model as |item|}}
   <div style="background-image: url('img/backgrounds/{{item.imageBackground}}');">
   {{image.title}}
   </div>
{{/each}}

当然,这是不好的,因为不建议绑定到style-attribute。
因此,我在控制器上创建了一个计算属性,该属性可提供htmlSafe要绑定字符串,该字符串可以按预期工作。

由于我需要这个-并且图像绑定到一个特殊的链接-在几个模板中,我制作了2个我希望/尝试结合使用的助手:

第一个帮助程序可以在其他几个模板中正常工作(生成params-string / link到提供所需图像的php文件)

 // helpers/imagelink.js
 export default Ember.Helper.extend({
    empty: "img/dummies/blank.png",
    compute(params, hash) {
        if(params[0]) {
           let paramString = 'file='+params[0]+'&itemType='+hash.item+'&type='+hash.type;
           return ENV.ajaxPrefix + ENV.apiNamespace + '/getimage?'+paramString;
        } else {
            // display dummy
            return this.get('empty');
        }
    }

});

现在,我想制作第二个辅助程序,以某种方式封装第一个辅助程序,并将所需的“样式”字符串添加到链接中:

// helpers/imagebackgoundstyle.js
import Ember from 'ember';
import { imagelink } from 'my-app-name/helpers/imagelink';

export default Ember.Helper.extend({
    compute(params, hash) {
        // ERROR HERE
        let link = imagelink(params, hash);
        return Ember.String.htmlSafe("background-image: url('"+link+"');");
    }
});

像这样调用第二个助手:

<div style={{imagebackgroundstyle workgroup.imageBackground item='workgroup' type='imageBackground'}}>

我在这里得到的错误是imagelink.imagelink is not a function
我已经尝试了几种变体,甚至是诸如之类的奇怪的东西imagelink.compute(params, hash)……显然导入助手时我做错了什么,但是我无法解决....?

我试过/查看Ember js在控制器内使用车把助手吗?从另一个助手中调用一个把手阻止助手,以及其他几个....尚未解决/已过时。

塔姆·巴杰(TameBadger)

我相信您的is not a function错误都与您的导入语法有关:

import { imagelink } from 'my-app-name/helpers/imagelink';

您正在尝试导入不存在的内容,因为imagelink helper被默认导出。因此,您必须使用:

import imagelink from 'my-app-name/helpers/imagelink';

但是您的代码会遇到另一个问题,因此建议您将其更改为:

import Ember from 'ember'

import ImageLink from './image-link'

export default ImageLink.extend({
    compute(params, hash) {
            const val = this._super(params, hash)
      return val + '2'
    }
})

您在这里所做的只是扩展其他帮助程序,使用this._super()并在新帮助程序中使用该函数的返回值来调用其计算功能。

这是一个旋转的例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

车把JS:是否可以将一个助手中的变量传递给另一个助手?

来自分类Dev

我可以使用Meteor将this._id值从一个模板助手传递给另一个模板助手吗?

来自分类Dev

Meteor.js:如何将一个助手的数据上下文传递给另一个助手?

来自分类Dev

在模板的上下文中(流星0.9.4)从另一个助手中调用一个助手

来自分类Dev

车把JS:是否可以将一个助手中的变量传递给另一个助手?

来自分类Dev

Fluid-Alias-View-Helper和另一个视图助手的结果

来自分类Dev

Fluid-Alias-View-Helper和另一个视图助手的结果

来自分类Dev

swift 从助手/另一个类中关闭 ViewController

来自分类Dev

流星空格键助手-传递另一个空格键作为助手参数

来自分类Dev

Rails创建一个助手来添加文本

来自分类Dev

创建一个添加 rails 表单助手的 Gem

来自分类Dev

如何在Java中的另一个类中调用数据库助手类的方法-Android

来自分类Dev

我可以从流星助手返回一个异步值(一个Promise)吗?

来自分类Dev

流星:如何从流星助手打印一个数组

来自分类Dev

ember-cli:创建一个可以渲染视图的助手吗?

来自分类Dev

“托管调试助手'RaceOnRCWCleanup'在Jarvis中检测到一个问题

来自分类Dev

您可以给助手一个变量并更改它在CodeIgniter中使用的功能吗

来自分类Dev

如何在android中创建一个助手屏幕

来自分类Dev

teradata sql助手在限制时给我一个错误?

来自分类Dev

为什么我不能使用$ this是一个opencart助手?

来自分类Dev

创建一个ASP MVC助手来包围HTML代码

来自分类Dev

“托管调试助手'RaceOnRCWCleanup'在Jarvis中检测到一个问题

来自分类Dev

如何在Ember中创建一个可以包装/处理内容的Handlebars阻止助手?

来自分类Dev

在动作助手中使用browserhostory.push是一个好主意吗?

来自分类Dev

从视图模型获取数据时,选择标签助手呈现一个空列表

来自分类Dev

CSV 助手。第一个值向右移动

来自分类Dev

不变性助手更新一个属性而不更新其他属性?

来自分类Dev

Meteor - 试图在助手中返回一个构建的 URL,返回空白?

来自分类Dev

只是另一个邪恶的子手问题

Related 相关文章

  1. 1

    车把JS:是否可以将一个助手中的变量传递给另一个助手?

  2. 2

    我可以使用Meteor将this._id值从一个模板助手传递给另一个模板助手吗?

  3. 3

    Meteor.js:如何将一个助手的数据上下文传递给另一个助手?

  4. 4

    在模板的上下文中(流星0.9.4)从另一个助手中调用一个助手

  5. 5

    车把JS:是否可以将一个助手中的变量传递给另一个助手?

  6. 6

    Fluid-Alias-View-Helper和另一个视图助手的结果

  7. 7

    Fluid-Alias-View-Helper和另一个视图助手的结果

  8. 8

    swift 从助手/另一个类中关闭 ViewController

  9. 9

    流星空格键助手-传递另一个空格键作为助手参数

  10. 10

    Rails创建一个助手来添加文本

  11. 11

    创建一个添加 rails 表单助手的 Gem

  12. 12

    如何在Java中的另一个类中调用数据库助手类的方法-Android

  13. 13

    我可以从流星助手返回一个异步值(一个Promise)吗?

  14. 14

    流星:如何从流星助手打印一个数组

  15. 15

    ember-cli:创建一个可以渲染视图的助手吗?

  16. 16

    “托管调试助手'RaceOnRCWCleanup'在Jarvis中检测到一个问题

  17. 17

    您可以给助手一个变量并更改它在CodeIgniter中使用的功能吗

  18. 18

    如何在android中创建一个助手屏幕

  19. 19

    teradata sql助手在限制时给我一个错误?

  20. 20

    为什么我不能使用$ this是一个opencart助手?

  21. 21

    创建一个ASP MVC助手来包围HTML代码

  22. 22

    “托管调试助手'RaceOnRCWCleanup'在Jarvis中检测到一个问题

  23. 23

    如何在Ember中创建一个可以包装/处理内容的Handlebars阻止助手?

  24. 24

    在动作助手中使用browserhostory.push是一个好主意吗?

  25. 25

    从视图模型获取数据时,选择标签助手呈现一个空列表

  26. 26

    CSV 助手。第一个值向右移动

  27. 27

    不变性助手更新一个属性而不更新其他属性?

  28. 28

    Meteor - 试图在助手中返回一个构建的 URL,返回空白?

  29. 29

    只是另一个邪恶的子手问题

热门标签

归档