Как использовать Sproutcore 2.0 с выпадающим меню начальной загрузки Twitter - PullRequest
3 голосов
/ 23 ноября 2011

Я создаю меню topbar, используя twitter-bootstrap, и он работает нормально

.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();
});

Как мне вызвать команду в документе. Уже после того, как sproutcore завершил генерацию HTML-тега

Ответы [ 2 ]

6 голосов
/ 10 декабря 2011

Вы также можете попробовать использовать готовый обратный вызов внутри вашего приложения:

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

Я думаю, что это ошибка, что вы должны вызвать this._super () здесь, и скоро исправим.

0 голосов
/ 23 ноября 2011

Вызвать скрипт Twitter Bootstrap после генерации Sproutcore путем обратного вызова didInsertElement

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

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

"didInsertElement" <отсутствует в онлайн-документе, но вы можете создать его самостоятельно </p>

...