Как использовать Sproutcore 2.0 с выпадающим меню начальной загрузки Twitter
Я создаю меню 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 ответа
Решение
Вы также можете попробовать использовать готовый обратный вызов внутри вашего приложения:
App = SC.Application.create({
ready: function() {
this._super();
$(".topbar").dropdown();
}
});
Я думаю, что это ошибка, что вы должны вызвать this._super() здесь, и скоро это исправим.
Вызвать скрипт Twitter Bootstrap после генерации Sproutcore путем обратного вызова didInsertElement
Mediawrap.menuView = SC.View.extend({
color: 'blue',
didInsertElement: function() {
this._super();
$(".topbar").dropdown();
}
})
"didInsertElement" <отсутствует в онлайн-документе, но вы можете создать его самостоятельно