首页 > 解决方案 > 更改事件未触发

问题描述

我正在开发一个小型 Angular 应用程序,当我的页面加载时,我想从我的 select2 下拉列表中检索一个值。这是我的代码:

ngAfterViewInit(): void {

console.log("this happen?");

if (this._globals.isAdmin === false) {
  console.log("first condition is executed cuz logged in user is not admin?")
  $('#selected-user').val(this.person[0].id).trigger('change');
}
else {
  $('#selected-user').val(this.helper.emptyGuid()).trigger('change');
}

// This is not executed
$('#selected-user').on(
  'change',
  (e) => {
    this.searchQuery.personId = $(e.target).val().toString();
    console.log("This is not executed when page loads:", this.searchQuery.personId);
  });
}

以下是 console.log 的结果:

在此处输入图像描述

正如你所看到的,即使我$('#selected-user').val(this.person[0].id).trigger('change');在第一个条件下设置它也没有执行。怎么来的?

标签: javascriptjqueryangulartypescriptjquery-select2

解决方案


如果您使用 Angular,为什么不使用 ng-change。尝试遵循标准。如果您正在创建 Angular 应用程序,请尝试仅使用 Angular 的所有功能。


推荐阅读