2014-11-12 6 views
0

В моем header.html У меня есть 2 контроллера, контроллер заголовка и языковой контроллер.ocLazyLoad - один контроллер, вызывающий другого

Это мой HeaderCtrl:

define(
[ 
    'angular', 'layout/layout.module','languages/languages.module',  
    'languages/controllers/LanguagesCtrl' 
], 
function (angular) { 
'use strict'; 

angular.module('app.layout').controller('HeaderCtrl', HeaderCtrl); 

/* @ngInject */ 
function HeaderCtrl() { 
    var header = this; 
    header.pageTitle = 'Response coming from HeaderCtrl'; 
} 

});

Мой Состояние: (через SVC вызова JSon файл)

"header": { 
       "templateUrl": "app/layout/views/tpl.header.html", 
       "controller": "HeaderCtrl as header", 
       "resolve": {}, 
       "data": { 
       "moduleName": "app.layout", 
       "moduleFiles": [ 
        "app/languages/controllers/HeaderCtrl.js" 
       ] 
       } 

Вопрос:

Как я могу передать объем от LanguagesCtrl к HeaderController поэтому мой HTML имеет и HeaderCtrl & LanguagesCtrl области видимости , не требуя события щелчка? [Из определяет HeaderController, в LanguageController загружается, я просто не могу с ним общаться.]

ответ

1

У меня есть решение с оговоркой:

Если вы идете в GitHub для angularjs-requirejs-lazy-controllers, существует mbLazyController Директива, которая выполняет эту работу.

Оговорка:

Насколько я могу сказать/старался, вы не можете иметь "контроллер как" сценарий, так что вы должны использовать $ объема:

<div mb-lazy-controller="languages/controllers/LanguagesCtrl"> 
    {{message}}  
    </div> 

Но он выполняет эту работу и работает с AngularJs 1.3.2.

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