我习惯在View文件中放入一些jquery代码,我为页面创建。
例如:
this.route('buildings');
接下来创建视图文件app / views / buildings.js
import Ember from "ember";
export default Ember.View.extend(Ember.TargetActionSupport, {
didInsertElement: function () {
//jquery here
}
});
但是现在有了Ember 2.0,我们没有这样的能力,我该怎么办?
答案 0 :(得分:2)
将其放入组件中。在 components / my-component.js
中import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement: function(){
// jquery here.
}
});
在你的模板中:
{{my-component}}
或者:
{{#my-component}}
Stuff
{{/my-component}}
答案 1 :(得分:2)
在Ember 2.0.0中,您仍然可以执行以下操作:
App.ApplicationView = Ember.Component.extend({
classNames: ['customClassName'],
didInsertElement: function() {
alert('did insert element')
}
});
App.BuildingsView = Ember.Component.extend({
classNames: ['customClassName2'],
didInsertElement: function() {
alert('did insert element2');
}
});
有关工作示例,请参阅此jsbin。
P.S。 Robert Jackson的评论:“使用组件作为ApplicationView将允许自定义classNames等等,但肯定也会产生许多负面结果(例如控制器不正确)。” https://github.com/emberjs/ember.js/issues/11486#issuecomment-131366332