2015-02-17 79 views
5

我試圖從智能表 1.x版本切換到角UI格(3.0版),更換爲NG-電網
我幾乎喜歡ui-grid,但有一件事讓我發瘋。在智能表中,值爲dataRow,這是引用表內實體的便捷方式。使用Angular UI-Grid,您如何在不使用行選擇的情況下訪問行實體數據?

我之前使用它的是填充一個html模板以包含來自實體的字段信息,例如放置在網格單元格內的html模板中的ng-click="$parentScope.edit(dataRow.id)"

但是,在ui網格,我似乎無法訪問實體對象,沒有進行正式的行或單元格選擇。任何將它包含在單元格模板中的努力都會產生一個對象(row.entity),但我無法訪問任何實體元素,它們顯示爲未定義。有任何想法嗎?

此外,我已經能夠在html模板中執行一個方法,但只能使用沒有參數的方法,而不是試圖從實體本身使用參數。

這裏是與智能表工作我的HTML模板:

<a data-toggle="tooltip" data-placement="top" title="View {{filteredRowCollection}}" ng-click="$parent.$parent.$parent.$parent.view(dataRow.id)" 
    class="glyphicon glyphicon-camera green"> 
</a> 
<a data-toggle="tooltip" data-placement="top" title="Edit {{selectionId}}" ng-click="grid.appScope.edit(row.entity.id)" 
    class="glyphicon glyphicon-pencil blue"> 
</a> 
<a data-toggle="tooltip" data-placement="top" title="Delete {{selectionId}}" ng-click="$parent.$parent.$parent.$parent.delete(dataRow.id)" 
    class="glyphicon glyphicon-trash red"> 
</a> 

我試圖用這樣的事情與UI格

function edit(row){ 
    . . . 
}; 

row,在這一點上是一個對象,因爲是row.entity。我期望能夠使用像row.entity.id之類的字段之一,但它是undefined

+0

我剪切和粘貼的小錯誤。編輯的ng-click線實際上是我的一個測試。應該讀的是ng-click =「grid.appScope.edit(row.entity.id)」 – 2015-02-17 21:00:17

+0

編輯爲希望。但是,您應該知道您可以自己編輯自己的問題:在您的問題的下方查找編輯按鈕:) – ccjmne 2015-02-17 22:41:02

回答

4

這個帖子可能是有用的,https://technpol.wordpress.com/2014/08/23/upgrading-to-ng-grid-3-0-ui-grid/

基本上,你需要設置外部範圍爲網格,這樣您就可以訪問數據。

+0

非常感謝幫助!得到它的工作,但打了一個奇怪的障礙,並找到了解決方法。我爲其中一個列字段使用了一個cellTemplate,並引用了一個HTML文件。工作很好。當我對cellHeader嘗試相同時,出現錯誤。結束了工作的是採取HTML並將其放置在一個變種,在列defs中使用var引用。工作很好。剛發現它真的很奇怪。 – 2015-02-23 14:10:18

相關問題