javascript - 如何处理 Angular 中对象属性的变化?

标签 javascript angularjs bind

我有一个带有 idname 的对象,如下所示:

function format(id){
  return '(' + id + ')';
}

function MyObject(id){
  this.id = id;
  this.text = format(id);
}

我正在使用 Angular,并且在 html 中有类似的内容:

<input ng-model="myObject.id" type="text">{{myObject.text}}

使用此代码,我可以将 id 绑定(bind)到 input,但 text 不会更改。我需要使用“ng-change”来跟踪对象 ID 更改。但我相信这里应该有一种方法可以使这个过程在 Angular 上自动化。

所以,我的问题是“是否可以在没有 ng-change 的情况下将对象属性的更改绑定(bind)到函数调用?”

附注我有一个这样的对象数组,所以我不想使用 $scope.$watch() :)

最佳答案

使用 getter 定义其属性。

function MyObject(id){
    this.id = id;
    Object.defineProperty(this, 'text', {
        get: function () { return '(' + this.id + ')'; }
    });
}

要了解有关 Object.defineProperty 的更多信息,请访问此 doc

关于javascript - 如何处理 Angular 中对象属性的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25687699/

相关文章:

javascript - 无法粘住导航栏

javascript - AngularJS websockets 太快了

javascript - ts 属性 'map' 在类型 'Observable<Response>' 上不存在

javascript - Angular Directive(指令)双向绑定(bind)不起作用

linux - 如果绑定(bind)的 linux 套接字没有监听,如何列出它们

Python:绑定(bind)一个未绑定(bind)的方法?

javascript - jquery 可拖动仅移动 30 度

javascript - 使用 foreach 时重复表 id

c++ - 通过 boost 信号 2 的观察者模式

javascript - 无法进行本地开发,错误为 : No 'Access-Control-Allow-Origin' header is present on the requested resource