我有一个单页应用程序的项目。所以我使用角度js路由。 在第一个控制器中,我有一个$ scope值。我必须在另一个控制器中使用相同的值
这是我的controller.js文件
var module = angular.module("sampleApp", ['ngRoute']);
module.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/route1', {
templateUrl: 'http://localhost/MyfirstApp/welcome',
controller: 'RouteController1'
}).
when('/route2', {
templateUrl: 'http://localhost/MyfirstApp/result',
controller: 'RouteController2'
}).
otherwise({
redirectTo: '/'
});
}]);
module.controller("RouteController1", function($scope)
{
$scope.value="Athira"
})
module.controller("RouteController2", function($scope) {
$scope.text=$scope.value + "Sandeep"
})
在结果页面中,它应显示为' Athira Sandeep'
感谢您提供任何帮助
答案 0 :(得分:0)
使用服务在控制器之间共享数据。 另一种选择可能是事件发射器,我个人不是粉丝,因为它填充了很多事件的rootScope(在这种情况下)。
你能做什么
angular.module('app',[])
.factory('SharedScope',function(){
var fac = this;
var scope = "";
var sharedScope = {
getScope : function(){
return fac.scope;
},
setScope: function(scope){
fac.scope = scope
}
};
return sharedScope;
})
.controller('Ctrl1',function('SharedScope'){
SharedScope.setScope("Angular");
})
.controller('Ctrl2',function('SharedScope'){
var data = SharedScope.getScope();
$scope.text = data + " is awesome"; //would get Angular is awesome
});
希望这有帮助。