如何知道何时在AngularJS中链接了指令的最后一个元素?

时间:2015-01-08 17:17:56

标签: javascript angularjs angularjs-directive

我有一个包含指令中多个元素的页面。我需要使用来自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>

1 个答案:

答案 0 :(得分:0)

如果指令在ng-repeat内运行,则有ng-repeat指令添加的几个子范围属性

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

如果不是这种情况,您的问题需要有关如何使用指令的详细信息