2014-09-05 31 views
1

我有idname這樣的對象:如何處理Angular中的對象屬性更改?

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}} 

使用這個代碼,我可以綁定到idinput ,但text不會被更改。我需要使用'ng-change'來跟蹤對象ID的變化。但我相信這裏應該是一種使角色自動處理的方法。

所以,我的問題是「是否有可能將對象屬性的更改綁定到函數調用沒有ng-change?」

P.S.我有一個這樣的對象數組,所以我不想使用$scope.$watch() :)

回答

3

用getter定義一個屬性。

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

閱讀更多有關Object.defineProperty訪問這個doc

+0

驚人!這正是我需要的! – Warlock 2014-09-05 15:14:04

相關問題