如何在angular的scope中获取jquery事件执行后的变量

近日在完成angular的项目构建,当和easyui的datagrid结合时,我需要在datagrid的行选中onClickRow事件发生后获取行的id时,并传递给angular的模型变量。以便我的angular删除功能可以使用,

也许有人会问,为什么不用

<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控制器代码,

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值,看一下是否能正常输出:

显示没问题,同时点击页面上的删除按钮,

<a ng-click="deletePermission()">删除</a>
就可以调用angular中的deletePermission() 的rest API完成删除记录的功能。


转载于:https://my.oschina.net/buwei/blog/192638

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值