jQuery插件在Ember组件中不可用

时间:2015-07-01 22:03:28

标签: jquery ember.js

我有一个使用jQuery插件格式化数字的组件。这是插件:https://github.com/asual/jquery-format

我将插件包含在我的Brocfile中(使用ember-cli)

app.import('vendor/jquery.format-1.3.min.js');

在我的组件中,我可以成功访问我的组件,如:

didInsertElement: function() {
  var formattedNum = $.format.number(val, '###,###.##');
  this.set('val', formattNum');
}

然而,我不断收到来自余烬(jshint)的警告,表示它并没有认识到' $'变量。我相信访问底层jQuery变量的正确方法是执行以下操作:

didInsertElement: function() {
  var formattedNum = this.$.format.number(val, '###,###.##');
  this.set('val', formattNum');
}

不幸的是,当我这样做时,我总是收到错误:'无法读取属性'数字'未定义的。这是访问此插件方法的不同方法吗?我试过这个。$()。format.number(..)和这个。$ .format.number(...)。两者都失败了。

安德鲁

2 个答案:

答案 0 :(得分:0)

我认为您需要一个计算函数而不是使用didInsertElement。您应该在发布到页面之前获取项目,并格式化项目的数字字段。例如,在component.js中尝试这个:

formatSomething : Ember.computed('item', function () {
    this.set('item.val', this.$.format.number(this.get('item.val'), '###,###.##'));
}),

答案 1 :(得分:-1)

您应该可以使用window.$代替this.$来访问它。

this.$将在didInsertElement所属的对象(可能是您的组件)上调用它