我正在做一个如下所示的角度页面,datatable部分属于ng-view(使用ngRoute),而上面的导航栏属于父级的index.html。同样在子视图中,底部有一个导航栏。现在,我想将这两个导航栏放在一起(将子导航栏移到ng-view之外)。我试图将子导航栏放入index.html,然后ng-controller ='childController',它什么也没显示。
=======
如果我在数组中输入一些固定数据,则可以显示该数据。但是在子控制器中动态生成的数据不起作用
这是我的代码的一部分
我将子导航栏放入index.html,然后添加子控制器:
<ul ng-controller="imagesController" >
<li ng-repeat="y in subNav">{{y.name}}</li>
</ul>
<div><ng-view></ng-view></div>
在子控制器中,我将数据推送到ng-repeat使用的'subNav'数组
/*clicking folder in datatable*/
$scope.getInfo = function(index) {
if($scope.applicationimages[index].type == 'folder') {
$http({
method: 'GET',
url: $scope.url + '/' + $scope.applicationimages[index].name
}).then(function(response) {
$scope.subNav.push({name: $scope.applicationimages[index].name, suburl: $scope.url});
$scope.url += '/' + $scope.applicationimages[index].name;
$scope.applicationimages = response.data.payload.list;
}, function(response) {
console.log('http error');
})
}
}
/*child navigation bar*/
$scope.subNav = [];
$scope.getCurrentNav = function(index) {
$http({
method: 'GET',
url: $scope.subNav[index].suburl + '/' + $scope.subNav[index].name
}).then(function(response) {
$scope.subNav.splice(index+1);
$scope.applicationimages = response.data.payload.list;
$scope.url = $scope.subNav[index].suburl + '/' + $scope.subNav[index].name;
}, function(response) {
console.log('http error');
})
}
最佳答案
默认情况下,您无法访问父级的范围。您需要执行以下操作才能到达父作用域的subNav变量:
$scope.$parent.subNav.splice(index+1);
否则,您将在子控制器作用域中创建一个新变量
subNav
。您可以here详细了解。