在Ember-cli中使用jquery

Run*_*oop 3 jquery ember.js ember-cli

我对Ember.js和Ember-cli都比较陌生,非常感谢在自定义视图中使用jquery工具提示.所有代码都在下面,但是当我注入模板时,我收到以下控制台错误:

[Error] TypeError: 'undefined' is not a function (evaluating 'Ember.$().tooltip()')
Run Code Online (Sandbox Code Playgroud)

我在名为tooltip.js的文件中使用自定义视图:

import Ember from 'ember';

export default Ember.View.extend({

  tagName:  'span',
  title:  'The tooltip title',
  html: true,
  placement:  'top',
  didInsertElement: function(){
    Ember.$().tooltip({"html": this.get('html'),  
                                        "title":this.get('title'),
                                        "placement":this.get('placement'), 
                                        container: 'body'});

  }
});
Run Code Online (Sandbox Code Playgroud)

相关的模板代码是:

{{#view "tooltip" titleBinding="item" placement="right"}}<span><img class="app_info_icon" id="typeInfoIcon" src="/assets/images/info_icon.png"></img></span>{{/view}}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Run*_*oop 10

解决如下:

  • Jquery的小部件等不包含在ember-cli使用的标准jquery库中.它必须使用添加bower install --save jquery-ui
  • 然后,您必须将以下行添加到Brocfile.js:

app.import('bower_components/jquery-ui/jquery-ui.js'); app.import('bower_components/jquery-ui/ui/tooltip.js');

  • 正如@Leeft所指出的,当this.$()应该使用从视图或组件引用jQuery时,而不是Ember.$()
  • 务必在0.40之后使用Ember-CLI版本.