如何将项目从ng-repeat传递到由ng-include创建/加载的控制器?

时间:2015-04-14 06:31:48

标签: javascript angularjs

我有一个加载ng-include的ng-repeat。我想在视图中有一个单独的控制器,ng-include加载。

但是我在该控制器中从ng-repeat访问该项目时遇到问题。我试过这样的事情,但它失败了。

如何在result内找到SubController

    <div ng-repeat="result in results">
            <div class="box" ng-include="view/someinclude.html"></div>
    </div>

查看/ someinclude.html:

<div ng-controller="SubController">
     ...
</div>

控制器js:

angular.module('SubController', [])
    .controller('SubController', ['$scope',
        function ($scope) {
            //fails
            console.log($scope.result);
        }
    ]);

3 个答案:

答案 0 :(得分:1)

确保您使用的是同一个模块:

angular.module('SubController').controller('SubController', function() {...});

答案 1 :(得分:1)

确保您的示波器是同一模块的一部分,或者它们的不同之处包括另一个模块,如果不是问题,那么它将超出您的范围#&# 39;显示,像这样:

angular.module("app").controller.(testController", ["$scope", function($scope){
     console.log($scope.x)
}])

使用:

<div ng-repeat = "x in [1,2]">
        <div ng-include = "'./views/vew.test.html'">
        </div>
</div>

和vew.test.html:

<div ng-controller = "testController">
    {{x}}
</div>

屏幕上和控制台中的1和2都会出现。

答案 2 :(得分:1)

尝试在控制器中使用$parent.result而不是$scope.result,因为ng-include会从其父作用域创建自己的prototypically inherits范围。