Ember 2.0 - 页面视图

时间:2015-08-14 13:26:08

标签: ember.js views

我习惯在View文件中放入一些jquery代码,我为页面创建。

例如:

  1. 我有路线this.route('buildings');
  2. 接下来创建视图文件app / views / buildings.js

    import Ember from "ember";
    
    export default Ember.View.extend(Ember.TargetActionSupport, {
       didInsertElement: function () {
         //jquery here
       }
    });
    
  3. 但是现在有了Ember 2.0,我们没有这样的能力,我该怎么办?

2 个答案:

答案 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