【问题标题】:Get Ember View from jQuery object从 jQuery 对象获取 Ember 视图
【发布时间】:2012-02-22 15:19:56
【问题描述】:

我知道如何从 DOM 中的 Ember 视图构造一个 jQuery 对象:

App.myView = Ember.View.extend({
  elementId: "my_view",

  didInsertElement: function(){
    console.log(this.$().attr('id'))  // outputs 'my_view'
  }
});


<!-- HTML output -->

<div id="my_view">
   <!--  ...   -->
</div>

反过来怎么样。给定一个 jQuery 对象,如何获取对应的 Ember View 对象。

function(selector){
   $el = $(selector);
   // ???
}

【问题讨论】:

    标签: jquery ember.js


    【解决方案1】:
    function getClosestEmberView($el) {
      var id = $el.closest('.ember-view').attr('id');
      if (!id) return;
      if (Ember.View.views.hasOwnProperty(id)) {
        return Ember.View.views[id];
      }
    }
    

    【讨论】:

    • 从 dom 元素中获取组件实例怎么样? - 我注意到它没有 id。我应该以某种方式指定一个吗?
    • @shaunc:我在一个组件上测试了上述方法。由于ComponentView 的子类,它应该 有一个id 并出现在Ember.View.views 中。
    • 从 ember 1.13 开始,必须通过视图注册表来获取视图:container.lookup('-view-registry:main')[id]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多