我正在尝试在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/

10-13 03:18