我正在尝试在 Ember 项目中使用 jQuery 插件(在本例中为“fitText”)。
在ember-cli-build.js
(最近替换了Brocofile...)中 - 我导入了依赖项(我已经使用 Bower 安装了该依赖项) .
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
// Add options here
});
app.import('bower_components/fittext/fittext.js');
return app.toTree();
};
在我的控制台中,我可以输入“fitText”,然后我确实可以取回对象。所以,它现在是全局性的,我应该可以在任何地方使用它。但是 “未捕获类型错误:$(...).fitText 不是函数”
@Tom Netzband 指出 fitText 的 Bower 版本是 @adacio 维护的版本,并且是 vanilla JS。我已经将其换成了 app.import('vendor/jquery.fittext.js');
(JS 实际上只有 20 行左右)
以前,我需要将其导入到我想要使用它的 Controller 或路由中 - 但文档不再引用它。在以 moment.js
为例的文档中,它似乎成为了一个全局的。
我已经把它放在 app.js 中的 Ready hook 中 - 旁边是类似的 jQuery 东西,工作正常......但没有运气。在本例中,我只想影响 index.hbs/route 上的几个单词
更新
这现在实际上已经成为另一个问题了。我以为这仍然是同样的问题,但事实并非如此。因此,授予答案并提出新的答案。谢谢。
最佳答案
看起来bower install fittext
没有安装fitText的jQuery插件版本,它只安装了它的纯js版本。
如果您查看 bower_components/fittext/fittext.js
文件,您会看到 jQuery 未传入或使用,并且 example.html
中的示例code> 文件显示用法为:
fitText(document.getElementById('fittext'), 1.2)
因此,如果您想要 jQuery 版本,您可能必须直接从 github 下载它并将其放入您的 vendor
文件夹中,并将其包含在 Bower 之外。
更新
看起来用 Bower 注册的版本是 jQuery 版本的 fork 版本,其中 jQuery 已被删除:https://github.com/adactio/FitText.js
关于javascript - Ember 依赖项 "Uncaught TypeError: $(...).fitText is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725319/