Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 加载指令后调用函数_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 加载指令后调用函数

Angularjs 加载指令后调用函数,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在编写angular 1.6的自定义指令 我想在指令加载后调用函数。有没有办法做到这一点 我尝试了link函数,但似乎link函数是在加载指令之前执行的 任何帮助都将不胜感激 这是我的指令码 <pagination total-data= noOfRecords></pagination> 您可以尝试在$onInit()内部或$postLink()内部调用您的函数,您可以在link函数中添加一个手表totalData并在那里执行操作 scope.$watch('to

我正在编写angular 1.6的自定义指令

我想在指令加载后调用函数。有没有办法做到这一点

我尝试了link函数,但似乎link函数是在加载指令之前执行的

任何帮助都将不胜感激

这是我的指令码

<pagination total-data= noOfRecords></pagination>

您可以尝试在
$onInit()
内部或
$postLink()

内部调用您的函数,您可以在link函数中添加一个手表totalData并在那里执行操作

scope.$watch('totalData', function () {
   if (scope.totalData && scope.totalData.length > 0) { //or whatever condition is required
   }
});

既然您使用的是anguljsv1.6,请考虑将指令作为一个组件:

app.component("pagination", {
    templateUrl: 'template/directives/pagination.html',
    bindings: {
        totalData: '<',
    },
    controller: "paginationCtrl"
})
组件的结构可以自动升级为Angular 2+组件。它们使迁移到Angular 2+更容易

有关详细信息,请参阅

app.controller("paginationCtrl", function() {
    this.$onChanges = function(changesObj) {
        if (changesObj.totalData) {
            console.log(changesObj.totalData.currentValue);               
            console.log(changesObj.totalData.previousValue);                 
            console.log(changesObj.totalData.isFirstChange());
        };
    };
    this.$onInit = function() {
        //Code to execute after component loaded
        //...
    });
});