AngularJS自定义标签添加回调函数eval()

10 篇文章 1 订阅
function helloworld(name){ 
	console.log("hello!!!!!"+name)
} 
var name="zhangsan";
eval("helloworld(name)"); 

代码粘贴到谷歌的控制台可以看到

hello!!!!! zhangsan

可以使用这个功能----返回用户选择的某行数据。

<smcs-search-input-table table-uniqueflag="b" table-resultjson="jsonresulta" table-showcols="showtablecolsa"  table-temprow="6" 
table-querycol="0,1" table-outcol="0" table-callback="gettabledata(data)" resultcache="true" >
</smcs-search-input-table>

gettabledata(data)是用户自定义函数。我会在directive封装标签的里面调用这个行数,把用户选择的某行数据以json对象返回给data.

</pre><pre name="code" class="javascript">//双击某行时,把选中的数据输出 
$scope.selectRow = function (id){
	if(id==1){
		return;//标题行
	}
	var trtdid="#"+tableuniqueflag+""+id+(parseInt(tableoutcol)+1);//取id
	var trtdval=$(trtdid).text();//取值
	var trtdidarray=new Array();//<td>id数组
	//trtdidarray = ["#b41", "#b42", "#b43"]
	var trtdvalarray=new Array();//<td>中内容数组
	//trtdvalarray=["a王武", "男", "北京"]
	for(var i=0;i<cells;i++){
		trtdidarray[i]="#"+tableuniqueflag+""+id+(parseInt(i)+1);		
		//表格一行的数据
		trtdvalarray[i]=$(trtdidarray[i]).text();
	}
	console.log(colattrs);
	//colattrs=["testname", "sex", "addr"]
	
	//json格式 { "testname": "a张三", "sex": "男","addr":"天津","tel":"138"}
	data="{"
	for(var j=0;j<cells;j++){
		data=data+'\"'+colattrs[j]+'\"'+":"+'\"'+trtdvalarray[j]+'\"';
		if(j<(cells-1)){
			data=data+","
		}
	}
	data=data+"}"
	//调用用户再app.controller中定义的回调函数。
	$scope.tablecallbackfun(JSON.parse(data));
	//把选中的项填写到输入框
	document.getElementById("inputable"+tableuniqueflag).value = trtdval;
	$(mydivlocation).css('display','none');
}
 //选中某行并将值的字符串返回父页面
$scope.tablecallbackfun = function(data){
	eval("$scope."+tablecallback);
}

app.controller

(function(){
	var app = angular.module('SMCS.App');
	
	app.controller('MedicareInstitutionInfoMaintainCtrl', ['$scope','$http', 'BaseURL','$modal','Modal',function($scope,$http,BaseURL,$modal,Modal){


		//后台返回数据
		$scope.jsonresulta = [{ "testname": "a张三", "sex": "男","addr":"天津","tel":"138"},
			{ "testname": "a张狗", "sex": "男","addr":"上海","tel":"138"},
			{ "testname": "a王武", "sex": "男","addr":"北京","tel":"138"},
			{ "testname": "a张武", "sex": "男","addr":"北京","tel":"138"},
			{ "testname": "a花木兰", "sex": "女","addr":"北京","tel":"138"}
			];
		
		$scope.showtablecolsa = [
			{ label: '姓名', map: 'testname'},
			{ label: '性别', map: 'sex'},
			{ label: '住址', map: 'addr'}
			];
		
		$scope.gettabledata = function(data){
			//data json对象,可以取里面的属性,相比原来返回一个值更灵活
			console.log("sex==="+data.sex);
		}
		
	}]);
	
})()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值