gpt4 book ai didi

angularjs - $postLink 未在 Angular 1.5 组件中调用

转载 作者:行者123 更新时间:2023-12-02 21:02:50 25 4
gpt4 key购买 nike

鉴于以下情况:

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 从来没有被 angular 调用过。

我的模板(目前)只包含 html 内容。两种 init 方法都可以正常工作,但是 $postLink 没有被调用。

最佳答案

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

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

它们在以前的 1.5.x 版本中不可用。

关于angularjs - $postLink 未在 Angular 1.5 组件中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37447405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com