簡體   English   中英

如何將項目從ng-repeat傳遞到ng-include創建/加載的控制器?

[英]How to pass an item from ng-repeat to a controller created/loaded by ng-include?

我有一個ng-repeat加載ng-include。 我想在ng-include加載的視圖內有一個單獨的控制器。

但是我在該控制器中無法從ng-repeat訪問該項目。 我嘗試了類似的方法,但失敗了。

我如何在resultSubController

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

view / someinclude.html:

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

控制器js:

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

確保您使用的是同一模塊:

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

確保您的范圍是同一模塊的一部分,或者它們是不同的,包括一個范圍,如果這不是問題,那么它將超出您顯示的范圍,如下所示:

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。

嘗試在控制器中使用$parent.result而不是$scope.result因為ng-include會創建一個自己的新范圍,該范圍$scope.result是從其父范圍繼承的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM