无法在Ember中加载jquery插件

无法在Ember中加载jquery插件,jquery,ember.js,ember-cli,Jquery,Ember.js,Ember Cli,首先:我已经尝试过这个答案: 这似乎是向ember添加jQuery插件的标准方式 我遵循本教程: 我使用bower安装插件,然后将导入添加到Brocfile.js 这是我的Brocfile.js: /* global require, module */ var EmberApp = require('ember-cli/lib/broccoli/ember-app'); var app = new EmberApp({ compassOptions: { outputStyle

首先:我已经尝试过这个答案: 这似乎是向ember添加jQuery插件的标准方式

我遵循本教程:

我使用bower安装插件,然后将导入添加到Brocfile.js

这是我的Brocfile.js

/* global require, module */

var EmberApp = require('ember-cli/lib/broccoli/ember-app');

var app = new EmberApp({
  compassOptions: {
    outputStyle: 'expanded'
  }
});

app.import('bower_components/ember-uploader/dist/ember-uploader.js');
app.import('bower_components/moment/moment.js');
app.import('bower_components/jquery.inputmask/dist/jquery.inputmask.bundle.min.js');

module.exports = app.toTree();
import Ember from 'ember';

export default Ember.TextField.extend({
  initializeMask: function() {
    var mask = this.get('mask');

    this.$().inputmask(mask, {
      onBeforeMask: function(value) {
        if (mask === 'mm/dd/yyyy') {
          return moment(new Date(value)).format('L');
        }
      }
    });

    // The input mask changes the value of the input from the original to a
    // formatted version. We need to manually send that change back to the
    // controller.
    this.set('value', this.$().val());
  }.on('didInsertElement')
});
由于bower,所有组件都正确地位于其导入路径上

下面是位于components/input mask.js的组件:

/* global require, module */

var EmberApp = require('ember-cli/lib/broccoli/ember-app');

var app = new EmberApp({
  compassOptions: {
    outputStyle: 'expanded'
  }
});

app.import('bower_components/ember-uploader/dist/ember-uploader.js');
app.import('bower_components/moment/moment.js');
app.import('bower_components/jquery.inputmask/dist/jquery.inputmask.bundle.min.js');

module.exports = app.toTree();
import Ember from 'ember';

export default Ember.TextField.extend({
  initializeMask: function() {
    var mask = this.get('mask');

    this.$().inputmask(mask, {
      onBeforeMask: function(value) {
        if (mask === 'mm/dd/yyyy') {
          return moment(new Date(value)).format('L');
        }
      }
    });

    // The input mask changes the value of the input from the original to a
    // formatted version. We need to manually send that change back to the
    // controller.
    this.set('value', this.$().val());
  }.on('didInsertElement')
});
但是在Chrome的控制台中,我得到了一个错误:
uncaughttypeerror:undefined不是
这个的函数。$().inputmask


我是否缺少将插件导入jQuery的其他功能?

在我重新启动计算机并再次发布
ember-service
后,问题得到了解决。我猜我的计算机在不该缓存的地方做了一些奇怪的缓存。

是否
$.inputmask
未定义?是否重新运行了broc文件?@JordyLangen是的,$.inputmask也未定义。@Bloomfield我正在使用Ember CLI为应用程序提供服务,我一直认为它自己使用了broc文件。我应该如何重新运行broc文件?@jrlainfiesta是的,如果余烬服务器命令运行brocoli,但是如果您将新文件导入broc文件,则必须重新运行余烬服务器命令,以便上载文件。将文件路径添加到brockfile.js后,是否关闭了余烬服务器,然后重新启动?每次更改该文件时都需要执行此操作,以便拾取更改。