我有一个带有 id
和 name
的对象,如下所示:
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/