无法在Ember中加载jquery插件

时间:2015-03-05 18:36:09

标签: jquery ember.js ember-cli

首先:我已经尝试过这个答案:Using jquery in Ember-cli 这似乎是为ember添加jQuery插件的规范方式。

我正在学习本教程:http://beerlington.com/blog/2015/01/22/jquery-inputmask-user-experience-in-emberjs/

我使用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();

由于凉亭,所有组件都正确地位于其导入路径上。

这是 components / input-mask.js 的组件:

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的控制台中,我收到Uncaught TypeError: undefined is not a function的错误this.$().inputmask

我错过了将插件导入jQuery的其他内容吗?

1 个答案:

答案 0 :(得分:0)

重新启动计算机并再次发出ember serve后,问题解决了。我想我的计算机正在做一些奇怪的缓存,它应该没有。