Angularjs 角度js将数据从配置控制器传递到其他控制器
我有一种情况,我想将数据从控件(在配置中)传递到外部控制器。我已尝试在factory中传递数据,但是在数据更改后,它仍然保持为0(不确定我哪里做错了)。在DynamicController更改后,是否有方法将数据传递到navCtrl?谢谢你的帮助Angularjs 角度js将数据从配置控制器传递到其他控制器,angularjs,Angularjs,我有一种情况,我想将数据从控件(在配置中)传递到外部控制器。我已尝试在factory中传递数据,但是在数据更改后,它仍然保持为0(不确定我哪里做错了)。在DynamicController更改后,是否有方法将数据传递到navCtrl?谢谢你的帮助 var app = angular.module('fccrm', ['ngRoute']); app.factory('idService', function(){ var id = 0; var
var app = angular.module('fccrm', ['ngRoute']);
app.factory('idService', function(){
var id = 0;
var itemsService = {};
itemsService.set = function(val) {
id = val;
};
itemsService.get = function() {
return id;
};
return itemsService;
})
app.controller('navCtrl', ['$scope', 'idService', function($scope, idService){
$scope.disable = 'disabled';
console.log(idService.get());
}])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/:page/:id', {
template: '',
controller: DynamicController
});
}])
function DynamicController($scope, $routeParams, $http, idService)
{
var templateUrl = '/index.php?controller=lead&action=' + $routeParams.page + '&id=' + $routeParams.id;
idService.set($routeParams.id);
$http.post(templateUrl).success(function(data){
$('#content').html(data);
})
}
如果希望值保持同步—无论加载顺序如何,则应使用$scope。这就是它的设计目的 根据要对值执行的操作,您有许多选项 在视图中显示该值
$scope.displayId=idService.get()
或者更好,为什么不将id添加到$rootScope
并从那里访问它呢
您希望在navCtrl中的值更改时收到通知,以便进行进一步处理
您可以在DynamicCtrl中使用
$rootScope.$broadcast('routeParamIdChanged',id)
,然后使用$scope.$on('routeParamIdChanged,fn(ev,id){})
监听更改。在哪里触发NAVCRL?您是从视图中调用它吗?如果在DynamicController之后调用navCtrl,则navCtrl中的值将为0。@首先使navCtrl触发器平静,因为它在视图中,我无法在DynamicController之后获取它的触发器。谢谢,如果对您有效,请标记为正确。:-)