Angular 1.6.4如何检测组件的无绑定属性的变化[重复]

Posted

技术标签:

【中文标题】Angular 1.6.4如何检测组件的无绑定属性的变化[重复]【英文标题】:Angular 1.6.4 How to detect changes in no-bindings properties of components [duplicate] 【发布时间】:2017-09-26 07:54:17 【问题描述】:

也许有人知道如何解决这个问题:

angular.module('myApp')
.component('myComponent', 
    controller: function () 
        this.prop1 = 1;
    ,
    templateUrl: 'template.html'

所以 $watch() 不适用于新版本。 $onChanges() - 不起作用,因为这是内部属性。可以有人解决这个问题吗?感谢您的帮助。

【问题讨论】:

这是一个完全不同的问题,在我的代码中我尽量避免任何绑定。 “$watch() 未启用新版本” - 你是什么意思? 尝试在 Angular 1.6 组件的控制器中使用 $watch) 如何在控制器类上定义自己的属性并使用setter检测变化? 【参考方案1】:

试试这个

angular.module('app.components', [])
.component('changeHandler', 
  controller: function ChangeHandlerController() 
    $onChanges: function (changes) 
      if (changes.canChange) 
       this.performActionWithValueOf(changes.canChange);
    ;
  ,
  bindings: 
    canChange: '<'
  ,
  templateUrl: 'change-handler.html'
);

【讨论】:

是的,它会起作用,但我想避免在这个组件中绑定。我需要类似 $watch 的东西 this._scope.$watch(() => return this.items; , (newVal, oldVal) => // 在这里做你该做的 );

以上是关于Angular 1.6.4如何检测组件的无绑定属性的变化[重复]的主要内容,如果未能解决你的问题,请参考以下文章

angular双向绑定

当组件被销毁时,Angular 如何销毁事件处理程序和属性绑定

Angular2,TypeScript,如何读取/绑定属性值到组件类(在 ngOnInit 中未定义)[重复]

Angular 2:如何检测数组中的变化? (@input 属性)

Angular09 数据绑定响应式编程管道

Angular2 - 组件变量/组件类属性的两种方式数据绑定?