2015-05-31 77 views
0

我有一個angularjs對象是這樣的:如何通過屬性引用對象的值?

$scope.afterLogin = [ 
    {value: 'customers|follow-ups', text: 'Follow Ups'}, 
    {value: '', text: 'not set'} 
]; 

我想如下與xeditable使用它:

<span 
    editable-select="user.default_module" 
    e-ng-options="s.value as s.text for s in afterLogin" 
    e-name="default_module" 
    e-form="rowform">{{s[user.default_module] as s.text for s in afterLogin}}</span> 

什麼我想是顯示afterLogin文本屬性,由user.default_module定義。我究竟做錯了什麼?我在s [user.default_module]上解析錯誤爲 - 我如何引用此範圍中的對象的屬性?

注意:這是包裹ng-repeat="user in users"

回答

1

您試圖以非常平坦的方式顯示當前選定的值。在official example他們正在使用過濾器來達到這個目的。

<span [...]>{{ afterLoginLabels[user.default_module] }}</span> 

JSFiddle:但是,您可以通過builing一個value: label地圖,即:

$scope.afterLoginLabels = {}; 
for (var i = 0; i < $scope.afterLogin.length; i++) { 
    $scope.afterLoginLabels[$scope.afterLogin[i].value] = $scope.afterLogin[i].text; 
} 

然後,顯示文本值簡化它。