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注入服务,但可以存储数据。