这是我定义控制器文件的方式
<script type="text/javascript" src="scripts/services/route.js"></script>
<script type="text/javascript" src="scripts/controllers/mainController.js"></script>
<script type="text/javascript" src="scripts/controllers/configController.js"></script>
<script type="text/javascript" src="scripts/controllers/examController.js"></script>
这就是我的route.js的样子
$routeProvider.when('/config', {
templateUrl: 'views/config.html',
controller: 'configController'
});
$routeProvider.when('/exam', {
templateUrl: 'views/exam.html',
controller: 'examController'
});
我正在做的是我定义了一个
$scope.a = true
中的 configController.js
我正在examController.js
但现在$scope.a
正在获得undefined
。
我如何将$ scope.a从configController扩展到examController?
答案 0 :(得分:0)
您可以使用&#34;共享服务&#34;
将值从一个控制器共享到另一个控制器<强> FirstController:强>
function FirstCtrl($scope, mySharedService) {
$scope.passData(params){
mySharedService.setValues(params);
}
}
<强> SharedService:强>
angular.module("yourAppName", []).factory("mySharedService", function($rootScope){
var mySharedService = {};
mySharedService.values = {};
mySharedService.setValues = function(params){
mySharedService.values = params;
$rootScope.$broadcast('dataPassed');
}
return mySharedService;
});
<强> SecondController:强>
function SecondController($scope, mySharedService) {
$scope.$on('dataPassed', function () {
$scope.newItems = mySharedService.values;
});
}
答案 1 :(得分:-1)
你必须使用$ rootScope而不是$ scope。像这样使用:
$rootScope.a = true in configController.js
//Now get it in examController
$rootScope.a in examController.js
不要忘记将$ rootScope包含为依赖项。