在我的header.html中,我有2个控制器,标头控制器和语言控制器。
这是我的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正在加载,我只是无法与它通信。]
答案 0 :(得分:1)
我有一个警告的解决方案:
如果你去angularjs-requirejs-lazy-controllers的github,有一个 mbLazyController 指令来完成这项工作。
警告:
尽可能接近/尝试过,你不能拥有"控制器作为"场景,所以你必须使用$ scope:
<div mb-lazy-controller="languages/controllers/LanguagesCtrl"> {{message}} </div>
但它确实可以完成这项工作并与AngularJs 1.3.2一起使用。