如何访问父控制器$scope子控制器中的值
How to access parent controller $scope values in child controller
var parent = angular.module('parent', ['swxSessionStorage']);
parent.controller('parent', [
$scope.idMenu = [{
label : "id1",
value : 1
}]
$scope.name=[abc,def];
/**
* Calling child controller
*/
var childView = $scope.$new(true);
$controller('child',{$scope:childView});
$scope.someMetod = function(){
childView.getChildData();
}
}
--------------
parent.controller('child', [
$scope.getChildData = function(){
$scope.idMenu.value
}
我无法访问子控制器中的父 $scope.idMenu?
但是我可以访问$scope.name,这只是一个数组,但我无法访问JsonArray。
可能是什么原因?
在父控制器中
$scope.$broadcast('event_name', function (){
//action on event
});
在子控制器中
$scope.$on('event_name', function () {
//data required to pass in parent controller
});
最好的方法是使用服务。
app.service('dataService', function() {
var dataList = [];
function addData(data) {
dataList.push(data);
};
function getData() {
return dataList;
};
return {
add: addData,
get: getData
};
});
在父控制器中,通过服务存储信息:
app.controller('parent', function($scope, dataService) {
$scope.addMyData = function(obj) {
dataService.addData(obj);
};
});
在子控制器中,通过服务检索信息:
app.controller('child', function($scope, dataService) {
$scope.products = dataService.getData();
});
不能将$scope注入服务,但可以存储数据。
相关文章:
- 如何通过AngularJS中的一个调用在多个控制器($scope)中插入相同的数据
- 门禁控制器$scope和$route指令
- 如何访问父控制器$scope子控制器中的值
- AngularJS:如何将服务方法分配给控制器$scope和ng-repeat(it)
- 控制器$scope变量在jasmine测试中未定义
- 在指令作用域和控制器$scope之间共享数据
- 尝试从AngularJS中的控制器($scope)将元素插入到视图(HTML)中
- 控制器$scope属性没有更新(套接字连接)
- Angular控制器$scope.fId显示未定义的值
- 从服务传递错误消息到控制器$scope
- 当控制器$scope变量改变时,AngularJS视图没有更新
- 子控制器$scope属性更改没有更新父控制器
- 动态更改控制器$scope变量
- 如何将异步服务中的数据设置到控制器$scope中?
- Angular控制器-scope范围
- 如何在angularJS中初始化控制器$scope变量
- UI角度模态控制器$scope值处理错误
- Angular$scope未按预期工作.正在尝试在控制器$scope和$scope.function作用域中分配对象值
- 即使控制器$scope具有新值,导航部分也不会更新
- 在$promise中使用$broadcast, mocha如何知道事件何时在控制器$scope中触发?