2017-05-06 54 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

相關問題