近日在完成angular的项目构建,当和easyui的datagrid结合时,我须要在datagrid的行选中onClickRow事件发生后获取行的id时,并传递给angular的模型变量。以便个人angular删除功能能够使用, html
也许有人会问,为何不用 app
<a ng-click="/xxxxx/"+row.id>删除</a>通过个人测试,ng-click只会在dom生成时(编译or链接时)进行赋值,运行期间没法改变ng-click右边的值(若是有不一样的结果的朋友但愿也能告诉我一声),上easyui中datagrid的行点击事件 代码:
//当datagrid的onClickRow事件发生时,更改model中的id值 onClickRow : function(rowIndex, rowData) { //alert(rowData.id); //get a hold of controller and scope var element = angular.element($("#myDatagrid")); var controller = element.controller(); var scope = element.scope(); //as this happends outside of angular you probably have to notify angular of the change by wrapping your function call in $apply scope.$apply(function(){ scope.updateRowid(rowData.id); }); }
下面是我当前页面的的angular控制器代码, dom
app.controller('PermissionListCtrl', ['$scope', 'PermissionFactory','$routeParams', '$location', function($scope, PermissionFactory, $routeParams,$location) { $scope.rowid = ""; // 在permission列表页面点击编辑时,执行的function,即会跳转到编辑页面 $scope.editPermission = function(id) { $location.path('/permission/' + id); }; $scope.deletePermission = function (id) { PermissionFactory.delete({ id: $scope.rowid }); }; //datagrid的onclick事件会更新当前选中row的id,供删除使用 $scope.updateRowid = function(id){ $scope.rowid = id; console.log(id); } }]);当我点击datagrid中的某一行,我会在控制台输出当前行的id值,看一下是否能正常输出:
显示没问题,同时点击页面上的删除按钮, ide
<a ng-click="deletePermission()">删除</a>就能够调用angular中的deletePermission() 的rest API完成删除记录的功能。