angularjs - 加载指令后调用函数
问题描述
我正在研究 angular 1.6 的自定义指令
我想在我的指令加载后调用一个函数。有没有办法做到这一点?
我尝试了链接函数,但似乎链接函数是在加载指令之前执行的。
任何帮助将不胜感激。
这是我的指令代码
<pagination total-data= noOfRecords></pagination>
app.directive("pagination", [pagination]);
function pagination() {
return {
restrict: 'EA',
templateUrl: 'template/directives/pagination.html',
scope: {
totalData: '=',
},
link: dirPaginationControlsLinkFn
};
}
解决方案
由于您使用的是 AngularJS V1.6,请考虑将指令设为组件:
app.component("pagination", {
templateUrl: 'template/directives/pagination.html',
bindings: {
totalData: '<',
},
controller: "paginationCtrl"
})
并使用$onChanges
和$onInit
生命周期钩子:
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
//...
});
});
组件是指令结构,它们可以自动升级到 Angular 2+ 组件。它们使迁移到 Angular 2+ 更容易。
有关详细信息,请参阅
推荐阅读
- javascript - 仅使 v-list 内的按钮可点击,同时禁用 v-list-item 内容
- amazon-web-services - 为什么即使禁用了 KMS 密钥,我仍然能够在 EC2 中读取加密的 EBS 卷数据?
- spring-integration - 使用 @Valid 将 JSON 集成到对象
- asp.net-core - .Net Core 操作的唯一 ID
- node.js - Gulp 错误 node_contextify - 断言 'args[1]'->IsString() 失败
- r - 使用R将大量文件组织到文件夹中?
- oauth-2.0 - 如何正确授权嵌套的微服务调用
- javascript - Vue 未定义/不是构造函数
- flutter - 我不明白为什么不从小部件树中删除可解雇
- javascript - 如何添加与传递的道具编号一样多的按钮,而不会在 React 上导致过多的重新渲染?