Twitter bootstrap 如何使用Sproutcore 2.0和Twitter引导下拉菜单

Twitter bootstrap 如何使用Sproutcore 2.0和Twitter引导下拉菜单,twitter-bootstrap,sproutcore-2,ember.js,Twitter Bootstrap,Sproutcore 2,Ember.js,我使用twitter引导创建了topbar菜单,效果很好 .topbar .topbar-inner .container-fluid {{#view Mediawrap.menuView id="menuView"}} = link_to 'Mediawrap', root_path, {:class=>"brand"} %ul.nav %li.menu = link_to 'Search', "#",

我使用twitter引导创建了topbar菜单,效果很好

.topbar
  .topbar-inner
    .container-fluid
      {{#view Mediawrap.menuView id="menuView"}}
      = link_to 'Mediawrap', root_path, {:class=>"brand"}
      %ul.nav
        %li.menu
          = link_to 'Search', "#", {:class=>"menu"}
          %ul.menu-dropdown
            %li
              = link_to "Hide date search", "#"
            %li
              = link_to "Hide index search", "#"
            %li
              = link_to "Hide advance search", "#"
            %li
              = link_to "Clear search", "#"
            %li.divider
            %li
              = link_to 'Save to new folder ...', "#"
            %li
              = link_to 'Replace a folder', "#"
      {{/view}}
直到我尝试将Sproutcore添加到页面。我的下拉菜单不起作用了。 我认为这是因为“$(document).ready(function()”在Sproutcore生成HTML标记之前调用

$(document).ready(function() {
  alert("bank");
  $(".topbar").dropdown();
});

如何调用document.ready中的命令,在sproutcore完成生成HTML标记后,通过“didInsertElement”回调生成sproutcore后,调用Twitter引导脚本

Mediawrap.menuView = SC.View.extend({
  color: 'blue',

  didInsertElement: function() {
    this._super();
    $(".topbar").dropdown();
  }
})

“didInsertElement”<不在联机文档中,但您可以自己生成它

您也可以尝试在应用程序中使用就绪回调:

App = SC.Application.create({
  ready: function() {
    this._super();
    $(".topbar").dropdown();
  }
});

我认为这是一个错误,你必须在这里调用这个.ySub(),并且很快会修复它。

在生命周期回调中你通常不必调用这个。回调?我的猜测是,对于相当全局的初始化类型使用“ready”是有意义的,而对于特定于视图的初始化使用“didInsertElement”是有意义的(比如这个下拉菜单示例,或者将jQuery UI sortable应用于列表等)。有什么想法吗?