2015-06-09 1 views
0

У меня есть SPA в системе Extjs. Я также включил угловые и необходимые модули, которые я хочу использовать на странице (внешний html, указанный в панели extjs).Угловой не распознает динамически загруженную страницу в Extjs

Угловой определяется внутри и работает везде, кроме только что загруженной страницы. Проблема в том, что я должен (повторно) загружать углы на каждую загрузку страницы, чтобы моя страница распознавалась угловым. Если я загружаю его каждый раз, каждый из них работает.

Как я могу гарантировать, что моя динамическая страница распознается автоматически угловыми?

Мой HTML:

<div ng-controller="MainCtrl"> 
    {{3+3}} and {{n}} <br> 
</div> 
+0

Это может показаться глупым (поскольку я сам не использовал ExtJs), но как загружаются эти новые страницы? Можете ли вы использовать службу [$ compile] (https://docs.angularjs.org/api/ng/service/$compile) для компиляции своего html? –

+0

Вы пробовали 'angular.bootstrap()'? https://docs.angularjs.org/guide/bootstrap –

+0

Вы выбираете «формы» в extjs для загрузки в определенный div. я определил панель в форме для загрузки, и на этой панели я могу определить встроенный html или обратиться к внешнему html-файлу (используя функции соответственно «html» и «loader») http://docs.sencha.com/ extjs/4.1.3/#!/api/Ext.panel.Panel. Кроме того, я попробовал загрузку после загрузки моей страницы. Никакого результата. Для компиляции $, я не уверен, как именно я должен использовать его в своей ситуации. – Asqan

ответ

0

angular.bootstrap() было решение.

Вещи, которые вы должны заботиться о являются:

  • Вы не должны никуда использовать нг-приложение
  • вы должны включить JQuery явно
  • вы можете поставить загрузчик в панель-х afterrender как:

    listeners : { 'afterrender' : { fn : function (panel, par2, par3) { angular.bootstrap($('#idOfYourAngularCode'), ['A']); }, scope : this } }

  • Если вы хотите использовать внешний html, вы можете определить свой «бутстрап» a lso в вашем html-файле (с помощью тега скрипта). Но если вы используете html inline в панели (например, я), это наиболее подходящий способ.
Смежные вопросы