簡體   English   中英

如何知道指令的最后一個元素何時已在AngularJS中鏈接?

[英]How to know when the last element of a directive has been linked in AngularJS?

我的指令中有一個包含多個元素的頁面。 我需要用來自API的數據填充這些元素,並且想通過一個API調用獲取所有元素的數據。

在指令中的鏈接函數中,我將每個元素添加到數組中,因此我具有所有元素的集合。 這樣,當我收到API的響應時,便可以用正確的數據填充所有元素。 但是我不知道何時鏈接了最后一個元素,因此我不知道何時可以運行API調用,並確保獲取所有元素的數據。 我的問題是我該怎么做? 我怎么知道前一個元素是DOM中此類元素的最后一個,因此我可以運行API調用並獲取數據?

angular.module('myApp',[])
.directive('someElement', function (postContentFactory, $rootScope) {
        var postElements = [];

        function fetchData() { 
            console.log("I'm fetching data and putting it into the elements");
        };

        return {
            link: function (scope, element, attributes) {
                postElements.push(element);
                // if this is last element of this kind in DOM, I
                // want to run fetchData();
            },
            restrict: 'E',
            templateUrl: 'templates/some-template.html'
        }
    }
)


<!-- HTML snippet that is server-side generated -->
<some-element id="12" type="someType"></some-element>
<some-element id="15" type="someType"></some-element>

如果指令是在ng-repeat運行,則ng-repeat指令會添加幾個子范圍屬性

您可以在指令中檢查scope.$last

如果不是這種情況,您的問題需要有關如何使用指令的更多詳細信息

暫無
暫無

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

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