gpt4 book ai didi

ember.js - Ember-cli 插件和助手

转载 作者:行者123 更新时间:2023-12-02 21:47:14 27 4
gpt4 key购买 nike

放置帮助程序文件的正确方法是什么,以及它们应该放在哪里以便解析器从插件 ember-cli 项目中找到它们?

我正在运行 ember-cli 0.2.2。

我从插件项目生成了一个助手:

ember g helper display-helper

生成器将文件放置在 app/helpers 中,这对我来说似乎是错误的,我本以为它应该放置在 addon helpers 中。我将文件移动到 addon/helpers ,它看起来像这样:

export default Ember.Handlebars.registerBoundHelper('displayHelper', function displayHelper(searchPath) {
return new Ember.Handlebars.SafeString(get(this, searchPath));
});

当我运行ember test时,我得到以下输出:

✘ Error: Assertion Failed: A helper named 'displayHelper' could not be found

让解析器找到此帮助程序的唯一方法是添加一个导入,该导入在使用它的组件中引用该帮助程序,如下所示:

import displayHelper from '../helpers/display-helper';

这似乎不正确,我以为解析器会自动找到它?

此外,即使我有引用,以下代码最终也会出现与上面相同的错误消息:

import Ember from 'ember';

var get = Ember.get;

function displayHelper(context, searchPath) {
return new Ember.Handlebars.SafeString(get(context, searchPath));
}

export default Ember.Handlebars.makeBoundHelper(displayHelper);

总而言之,我必须在模板使用帮助器的组件中添加这一行:

import displayHelper from '../helpers/display-helper';

而且我必须使用 registerBoundHelper 而不是像文档所说的 makeBoundHelper ,否则无法找到帮助程序。

最佳答案

如果您将助手从 app/helpers 移至 addon/helpers,则它在您的应用命名空间中不可用。要解决此问题,请添加以下文件:

// app/helpers/display-helper.js

import displayHelper from 'your-addon-name/helpers/display-helper";
export default displayHelper;

(不要照字面复制你的插件名称,使用你的插件的名称,这也是你的插件的命名空间。)

这是基于此处的说明:

http://www.ember-cli.com/#addon-components

就像那里的示例组件一样,您可以将真正的帮助器代码放在 addons/helpers/display-helper 中,但您需要将其导入并重新导出到您的应用程序,以便解析器找到它。

关于ember.js - Ember-cli 插件和助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com