我有一个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
绑定到input
,但是text
不会被更改。我需要使用“ ng-change”来跟踪对象ID的变化。但是我相信这应该是使该过程自动进行成角度的方法。因此,我的问题是“是否可以在没有
ng-change
的情况下将对象属性的更改绑定到函数调用?”附言而且我有一个这样的对象数组,所以我不想使用
$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/