0

我有那個吐出基於某些屬性的某些值表的通用指令,例如:在角度視圖中執行回調?

<tr ng-repeat="item in table.data"> 
    <td ng-repeat="column in table.columns"> 
     <i ng-if="column.type === 'icon'" class="fa fa-{{column.icon}} fa-2x"></i> 
     {{item[column.key]}} 
    </td> 
</tr> 

的數據結構可能是這樣的:

$scope.table = { 
    columns: [ 
     {key: 'flag', type: 'icon', icon: function (item) { return 'flag'; }}, 
     {key: 'acronym', type: 'desc', title: 'Acronym'}, 
    ], 
    data: {} 
}; 

隨着指令遍歷每個在表格數據項中它會創建一個新的表格行。每行都遵循基於列結構的規則。在某些情況下,有一個圖標與「箭頭」相同,並且icon只會設置爲arrow。但有時icon依賴於表item數據中的值。所以我想在視圖中執行icon作爲回調函數。

當我運行像{{column.icon(item)}}}的東西時,我得到錯誤。無論如何,從視圖執行此回調?

回答

1

是否爲column.icon,確實是所有列的函數?如果有沒有這個功能的列,它會炸燬。確保始終添加圖標方法。

$scope.table = { 
    columns: [ 
     {key: 'flag', type: 'icon', icon: function (item) { return 'flag'; }}, 
     {key: 'acronym', type: 'desc', title: 'Acronym', icon: function (item) { return 'flag'; }}, 
    ], 
    data: {} 
}; 

或者在調用它之前首先檢查視圖中是否存在圖標。

{{column.icon && column.icon(item)}} 
+0

你是對的,只是不得不預設所有列有功能,thx。 – Rob 2014-08-28 20:53:56