我正在做一个如下所示的角度页面,datatable部分属于ng-view(使用ngRoute),而上面的导航栏属于父级的index.html。同样在子视图中,底部有一个导航栏。现在,我想将这两个导航栏放在一起(将子导航栏移到ng-view之外)。我试图将子导航栏放入index.html,然后ng-controller ='childController',它什么也没显示。

=======

如果我在数组中输入一些固定数据,则可以显示该数据。但是在子控制器中动态生成的数据不起作用

javascript - Angular ng-repeat在子 Controller 中不起作用-LMLPHP

这是我的代码的一部分

我将子导航栏放入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详细了解。

07-24 16:05