我有id
和name
这样的对象:
function format(id){
return '(' + id + ')';
}
function MyObject(id){
this.id = id;
this.text = format(id);
}
我使用角色,我在html中有这样的东西:
<input ng-model="myObject.id" type="text">{{myObject.text}}
使用此代码,我可以将id
绑定到input
,但text
不会更改。我需要使用&#39; ng-change&#39;跟踪对象ID更改。但我相信这应该是一种使角色自动化的方法。
所以,我的问题是&#34;是否可以将对象属性的更改绑定到没有ng-change
的函数调用?&#34;
P.S。我有一系列这样的对象,所以我不想使用$scope.$watch()
:)
答案 0 :(得分:3)
使用getter在其上定义属性。
function MyObject(id){
this.id = id;
Object.defineProperty(this, 'text', {
get: function () { return '(' + this.id + ')'; }
});
}
阅读有关Object.defineProperty的更多信息,请访问此doc