$ postLink未在angular 1.5组件中调用

时间:2016-05-25 20:52:14

标签: angularjs

鉴于以下内容:

var Panda;
(function (Panda) {
    "use strict";
    var BulkCaptureComponentController = (function () {
        function BulkCaptureComponentController() {
            this.textBinding = '';
            this.dataBinding = 0;
        }
        BulkCaptureComponentController.prototype.$onInit = function () {
            console.log('init');
        };
        BulkCaptureComponentController.prototype.$postLink = function () {
            alert('1');
        };
        BulkCaptureComponentController.prototype.add = function () {
            this.functionBinding();
        };
        return BulkCaptureComponentController;
    }());
    var BulkCaptureController = (function () {
        function BulkCaptureController() {
            this.value = 0;
        }
        BulkCaptureController.prototype.$postLink = function () {
            alert('1');
        };
        BulkCaptureController.prototype.$onInit = function () {
            console.log('init');
        };
        BulkCaptureController.prototype.add = function () {
            this.value = this.value + 1;
        };
        return BulkCaptureController;
    }());
    var BulkCaptureComponent = (function () {
        function BulkCaptureComponent() {
            this.bindings = {
                textBinding: '@',
                dataBinding: '<',
                functionBinding: '&'
            };
            this.controller = BulkCaptureComponentController;
            this.templateUrl = '/areas/schedule/views/bulkcapture/bulk-capture.html';
        }
        return BulkCaptureComponent;
    }());
    Panda.panda.component('bulkCaptureComponent', new BulkCaptureComponent());
    Panda.panda.controller("BulkCaptureController", BulkCaptureController);
})(Panda || (Panda = {}));
;

为什么$postLink永远不会被角度调用。

我的模板(现在)只包含html内容。 两种init方法都可以正常工作,但$postLink不会被调用。

1 个答案:

答案 0 :(得分:4)

Angular 1.5.3中的一些新的生命周期钩子(包括$ postLink)were added

  • $onChanges(changesObj) - 每当更新单向绑定时调用。 changesObj是其键的哈希 是已更改的绑定属性的名称,值是表单的对象 { currentValue: ..., previousValue: ... }。使用此挂钩可触发组件内的更新,例如 克隆绑定值以防止外部值意外突变。
  • $onDestroy - 在控制器的包含范围被销毁时调用。使用此钩子释放 外部资源,手表和活动处理程序。
  • $postLink - 在此控制器的元素及其子元素被链接之后调用。类似于后链接 函数这个钩子可以用来设置DOM事件处理程序并直接进行DOM操作。 请注意,包含templateUrl指令的子元素将不会被编译和链接 他们正在等待他们的模板异步加载,他们自己的编译和链接已经 暂停直至发生。

以前的1.5.x版本不提供它们。