角UI格单击行 [英] Angular UI Grid click row
问题描述
我在一个角的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;
这是我的行模板(玉):
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)。我认为这将是有意义的突出光标下的行,并使用指针
光标更清楚地表明该行是可以点击的。
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;
}
}
这篇关于角UI格单击行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!