Javascript 单击行时角度UI网格显示另一个视图

Javascript 单击行时角度UI网格显示另一个视图,javascript,angularjs,onclick,row,angular-ui-grid,Javascript,Angularjs,Onclick,Row,Angular Ui Grid,这个话题与我们的生活息息相关。 简单地说,有一个ui网格(表),当您单击(触摸)表中的行项目时,它会显示另一个视图,但我被卡住了(ES5): 这是plunker一个例子,我没有看到一个“DetailController”定义,您可以使用它在点击联系人时调用它 其次,您可能希望将$state传递给MainCtrl,以便能够使用$state.go $state.go('contact', {contactId: row.entity.contactId}); 在上述编辑之后更新了答案-> 在应用程

这个话题与我们的生活息息相关。 简单地说,有一个ui网格(表),当您单击(触摸)表中的行项目时,它会显示另一个视图,但我被卡住了(ES5):

这是plunker

一个例子,我没有看到一个“DetailController”定义,您可以使用它在点击联系人时调用它

其次,您可能希望将$state传递给MainCtrl,以便能够使用$state.go

$state.go('contact', {contactId: row.entity.contactId});
在上述编辑之后更新了答案->

在应用程序的路由中,您将$state定义为“contact”,因此您可能希望在尝试使用$state.go时使用它

$state.go('contact', {contactId: row.entity.contactId});

将以下行添加到控制器:

     function rowTemplate() {
        return '<div ng-dblclick="grid.appScope.rowDoubleClick(row)" >' +
                '  <div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }"  ui-grid-cell>'+
                 ' </div> ' +
               '</div>';
    }

    $scope.rowDoubleClick = function (row) {
        alert(console.log(row.entity));            
    };
函数行模板(){
返回“”+
'  '+
'  ' +
'';
}
$scope.rowDoubleClick=函数(行){
警报(console.log(row.entity));
};
并放置到网格选项
rowTemplate:rowTemplate(),


并在
rowDblClick
中重新路由到所需的视图/模板。或者另一种解决方案是在
rowDblClick
上设置一个观察者,然后重新路由到视图/模板。不是完整的解决方案,但至少是一些;)

我已经检查了一点您的Plunkr,我做了一些更改,只是为了让它工作,您可以看到结果

请查收

  • 使用点指定状态时
父级必须存在

如果只注册一个状态,如contacts.list,则必须在某个点定义名为contacts的状态,否则不会注册任何状态。在定义联系人之前,state contacts.list将一直排队。如果这样做,您将不会看到任何错误,因此请小心定义父项,以便正确注册子项

  • 然后,当您声明一个控制器时,例如
    DetailController
    ,它必须存在

我希望这正是您所期望的。

Tnx,我纠正了这些错误,但单击仍然不起作用。我已更新了新建议。检查这是否有效。我尝试了“接触”状态,但仍然不起作用。