无法在Ember中加载jquery插件
首先:我已经尝试过这个答案: 这似乎是向ember添加jQuery插件的标准方式 我遵循本教程: 我使用bower安装插件,然后将导入添加到Brocfile.js 这是我的Brocfile.js:无法在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
/* 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后,是否关闭了余烬服务器,然后重新启动?每次更改该文件时都需要执行此操作,以便拾取更改。