2013-10-03 2 views
0

У меня есть приложение EmberJS, где я пытаюсь вызвать функцию jquery, которая позиционирует некоторые элементы div на странице, используя .css() для определенного шаблона руля.Emberjs: JQuery Функция, которая не вызывается после Handlebars Шаблон загружен

Проблема заключается в том, что когда EmberJS загружается в шаблон в мое приложение (с помощью url change или {{linkTo}}, функции jquery не запускаются. При этом, если обновлять страницу, они срабатывают просто отлично и все Кроме того, у меня есть прослушиватель событий, если страница меняет ширину, что приведет к отказу функции, и это тоже отлично работает.

Я предполагаю, что Ember фактически не вызывает функцию jquery после того, шаблон изначально загружен. В любом случае, чтобы обойти это? Мне было интересно, может ли я попытаться использовать рули для прямого вызова функции из моего scripts.js? Спасибо за вашу помощь!

Кроме того, возможно ли это без использования Views? Может быть, с Handlebars и компонентами?

+0

Можете поделиться каким-нибудь кодом? –

+1

Вам нужно запустить код jQuery в одном из ваших представлений. Учитесь в своем блоге, как это сделать. Http://mavilein.github.io/javascript/2013/08/01/Ember-JS-After-Render-Event/ – mavilein

ответ

2

Вам нужно будет ввести такой код в методе didInsertElement вашего вида. Так, например, если ваш шаблон project/index, вы бы сделали:

App.ProjectIndexView = Ember.View.extend({ 
    template: 'project/index', 
    didInsertElement: function() { 
    /// Your jQuery code here 
    } 
}); 
+0

awesome :) Собираюсь уйти. – DeliciousMe

+0

хотя я действительно задаюсь вопросом, могу ли я сделать это без использования просмотров вообще ... – DeliciousMe

+0

Почему вы не хотите использовать представления? – chopper

Смежные вопросы