我正在尝试在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”,然后将对象找回。因此,它现在是全球性的,我应该可以在任何地方使用它。但是
"Uncaught TypeError: $(...).fitText is not a function"
@Tom Netzband指出,fitText的凉亭版本是@adacio维护的版本,是香草JS。从那以后,我将其切换为
app.import('vendor/jquery.fittext.js');
(JS实际上只有20行左右)以前,我需要将其导入控制器或要使用它的路由中-但是文档不再引用它。在以
moment.js
为例的文档中,它似乎已成为一个整体。我已经将它放在app.js的ready钩子中-可以正常工作的类似jQuery旁边...但是没有运气。在这种情况下,我只想影响index.hbs / route上的几个单词
更新
现在,这确实已经成为另一个问题。我认为这仍然是相同的问题,但事实并非如此。因此,授予答案并提出新的答案。谢谢。
最佳答案
看起来bower install fittext
没有安装fitText的jQuery插件版本,它仅安装了普通的js版本。
如果查看您的bower_components/fittext/fittext.js
文件,您会看到jQuery未传入或未使用,并且example.html
文件中的示例显示用法如下:fitText(document.getElementById('fittext'), 1.2)
因此,如果您想要jQuery版本,则可能必须直接从github下载它,并将其放入vendor
文件夹中,并将其包括在bower之外。
更新
看来向bower注册的版本是jQuery版本的分叉版本,其中已删除了jQuery:https://github.com/adactio/FitText.js
关于javascript - Ember依赖项“未捕获的TypeError:$(...)。fitText不是函数”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32725319/