Angular UI Grid 单击行 [英] Angular UI Grid click row
问题描述
我在 Angular UI 网格中有一个项目列表.当我单击一行时,我想被带到不同的页面.(换句话说,网格中的每一行都是一个链接.)
I have a list of items in an Angular UI Grid. When I click a row, I want to be taken to a different page. (In other words, each row in the grid will be a link.)
我想这一定是一个非常普遍的愿望,尽管我还没有真正看到任何关于如何做到这一点的文档.实现这一目标的好方法是什么?
I imagine this must be a very common desire, although I haven't really seen any documentation on how to do it. What's a good way to accomplish this?
推荐答案
我自己想出了答案.这是我的控制器 (ES6):
I figured out the answer myself. Here's my controller (ES6):
'use strict';
class TrackingRecordsCtrl {
constructor($scope) {
// The content of this template is included
// separately
$scope.gridOptions = {
rowTemplate: 'app/components/tracking-record/grid-row.html',
};
// This function is referenced from the row's template.
// I'm just console.logging the row but you can of
// course do anything you want with it.
$scope.gridRowClick = row => {
console.log(row);
// or maybe $location.path(row.url)?
};
$scope.gridOptions.data = {
// This of course can't just be an empty object.
// Chances are you already have something defined
// for gridOptions.data.
};
}
}
TrackingRecordsCtrl.$inject = ['$scope'];
export default TrackingRecordsCtrl;
这是我的行模板(Jade):
And here's my row template (Jade):
.ui-grid-cell(
ng-repeat='(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name'
ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader }"
ui-grid-cell=''
ng-click='grid.appScope.gridRowClick(row)'
)
作为奖励,这是我的样式表 (SCSS).我认为突出显示光标下的行并使用 pointer
光标更清楚地表明这些行是可点击的.
And as a bonus, here's my stylesheet (SCSS). I thought it would make sense to highlight the row under the cursor and use a pointer
cursor to make it clearer that the rows are clickable.
.ui-grid-row {
cursor: pointer;
&:hover .ui-grid-cell {
background-color: #CCC;
}
}
这篇关于Angular UI Grid 单击行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!