大家好我使用角度js我需要将值从一个页面控制器传输到另一个页面控制器并将该值放入一个范围内任何人都可以帮助如何执行此操作
var app = angular.module("app", ["xeditable", "angularUtils.directives.dirPagination", "ngNotify", "ngCookies","ngRoute"]);
app.controller('Controller1', ['$scope', '$http', '$window', '$filter','$notify','$cookieStore',
function ($scope, $http, $window, $filter, $notify, $cookieStore)
{
$scope.Message="Hi welcome"
}]);
var app = angular.module("app", ["xeditable", "angularUtils.directives.dirPagination", "ngNotify", "ngCookies","ngRoute"]);
app.controller('Controller2', ['$scope', '$http', '$window', '$filter','$notify','$cookieStore',
function ($scope, $http, $window, $filter, $notify, $cookieStore)
{
///here i want get that scope value
}]);
答案 0 :(得分:0)
你应该为它使用服务。 服务
app.factory('myService', function() {
var message= [];
return {
set: set,
get: get
}
function set(mes) {
message.push(mes)
}
function get() {
return message;
}
});
在ctrl中
CTRL1
$scope.message1= 'Hi';
myService.set($scope.message1);
CTRL2
var message = myService.get()
答案 1 :(得分:0)
您可以使用$rootScope
代替$scope
:
// do not forget to inject $rootScope as dependency
$rootScope.Message="Hi welcome";
但最佳做法是使用service
并共享数据并在您想要的任何控制器中使用它。
答案 2 :(得分:0)
您应该定义一个服务并在其上编写getter / setter函数。
angular.module('app').service('msgService', function () {
var message;
this.setMsg = function (msg) {
message = msg;
};
this.getMsg = function () {
return message;
};
});
现在,在注入这样的依赖项后,您应该使用setMeg
中的Controller1
函数和getMsg
中的Controller2
函数。
app.controller('Controller1', ['$scope', '$http', '$window', '$filter','$notify','$cookieStore', 'msgService',
function ($scope, $http, $window, $filter, $notify, $cookieStore, msgService)
{
$scope.Message="Hi welcome"
msgService.setMsg($scope.Message);
}]);
app.controller('Controller2', ['$scope', '$http', '$window', '$filter','$notify','$cookieStore', 'msgService',
function ($scope, $http, $window, $filter, $notify, $cookieStore, msgService)
{
///here i want get that scope value
console.log('message from contoller 1 is : ', msgService.getMsg());
}]);
答案 3 :(得分:0)
使用服务将数据从一个控制器共享到另一个控制器
我们可以创建set
和get
之间controllers
之间数据的服务,然后将该服务注入我们想要使用它的控制器函数中。
服务:
app.service('setGetData', function() {
var data = '';
getData: function() { return data; },
setData: function(requestData) { data = requestData; }
});
控制器:
app.controller('Controller1',['setGetData',function(setGetData){
//设置来自一个控制器的数据
$ scope.Message =“嗨欢迎”;
setGetData.setData($ scope.Message);
}]);
app.controller('Controller2', ['setGetData',function(setGetData) {
// To get the data from the another controller
var res = setGetData.getData();
console.log(res); // Hi welcome
}]);
在这里,我们可以看到Controller1
用于设置数据,Controller2
用于获取数据。因此,我们可以将数据从一个控制器共享到另一个控制器。