Angular UI Grid 单击行 [英] Angular UI Grid click row

查看:32
本文介绍了Angular UI Grid 单击行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆