2017-05-06 68 views
-2

我想将控制器注入其他模块。我有两个文件如何将控制器注入其他模块

  • 的index.html
  • app.js

的index.html的代码如下

<body ng-app="mainApp" ng-controller="mainCtrl"> 
    <h1>{{lab}}</h1> 
    <h1 ng-controller="secCtrl">{{lab2}}</h1> 
</body> 

和app.js是如下

var myapi = angular.module('mainApp', []); 

myapi.controller('mainCtrl', function($scope){ 

$scope.lab='Hello' 
    return{ 
     controller:'secCtrl' 
    } 
}); 

myapi.controller('secCtrl', function($scope) { 
    $scope.lab2='Hello you are secCtrl'  
}); 

回答

1

一些澄清通货膨胀需要:

  • 什么您inject a controller into other module?
  • 意味着无需使用return语句里面mainCtrl按你的代码结构做。

DEMO

var myapi = angular.module('mainApp', []); 
 

 
myapi.controller('mainCtrl', function($scope){ 
 
    $scope.lab='Hello'; 
 
}); 
 

 
myapi.controller('secCtrl', function($scope) { 
 
    $scope.lab2='Hello you are secCtrl'  
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="mainApp" ng-controller="mainCtrl"> 
 
    <h1>{{lab}}</h1> 
 
    <h1 ng-controller="secCtrl">{{lab2}}</h1> 
 
</div>

+0

如果问题需要澄清,只是不,直到它足够清楚的回答。不好的问题会导致不好的答案。 – estus

0

我不知道你是什么inject controller in another module的意思,但如果你想共享数据beetween 2个模块,您可以使用services

app.factory('myService', function() { 
var message= []; 
return { 
    set: set, 
    get: get 
} 
function set(mes) { 
    message.push(mes) 
} 
function get() { 
    return message; 
} 



}); 

在CTRL1

myapi.controller('mainCtrl', function($scope,myService){ 

$scope.lab='Hello' 
    myService.set($scope.lab); 
}); 

在CTRL 2

myapi.controller('secCtrl', function($scope,myService) { 
    $scope.lab2= myService.get(); 

}); 
+0

我不想使用工厂或服务有另一种方式吗? –

+0

@NasiruddinSaiyed是的,你可以使用$ rootScope – Akashii