首先:我已经尝试过这个答案: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的其他内容吗?
答案 0 :(得分:0)
重新启动计算机并再次发出ember serve
后,问题解决了。我想我的计算机正在做一些奇怪的缓存,它应该没有。