Angularjs 如何获取ng click指令上的col值并与scope.info绑定
我想用scope.info.colname.绑定col属性值。。当我声明作用域时,orderBy()方法不起作用。当我没有声明作用域所有方法都在工作,但我无法获取col值时,请更新:啊,现在我看到了您试图实现的目标!如果只使用一次指令,您的方法可能会起作用,但由于您多次使用该指令,您最终会覆盖指令属性和Angularjs 如何获取ng click指令上的col值并与scope.info绑定,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我想用scope.info.colname.绑定col属性值。。当我声明作用域时,orderBy()方法不起作用。当我没有声明作用域所有方法都在工作,但我无法获取col值时,请更新:啊,现在我看到了您试图实现的目标!如果只使用一次指令,您的方法可能会起作用,但由于您多次使用该指令,您最终会覆盖指令属性和$scope变量 您可以通过使用子作用域来解决这个问题,即:不要与父作用域混合,而是将变量和方法保存在指令的内部或每个实例的“本地” 下面是使用子作用域的指令重构版本,它只更新子作用域的$pare
$scope
变量
您可以通过使用子作用域来解决这个问题,即:不要与父作用域混合,而是将变量和方法保存在指令的内部或每个实例的“本地”
下面是使用子作用域的指令重构版本,它只更新子作用域的$parent
info
,这是您的主$scope
:
.directive(“gridSort”,function()){
返回{
模板:
‘xx’+
‘xx’
,
范围:{
col:“@”,
变量:'@',
},
控制器:功能($scope){
$scope.info={
colName:$scope.col
}
$scope.SetSortValue=函数(){
如果($scope.Direction==-1){
$scope.info.CurrentPage=0;
$scope.info.Direction='Asc';
}else if($scope.Direction==1){
$scope.info.Direction='Desc';
$scope.info.CurrentPage=1000;
}
$scope.$parent.info=$scope.info;
}
},
链接:函数(范围、元素、属性){
//任何附加处理
}
};
});
scope:{}
literal即可声明子作用域controller:function($scope{}
$scope.$parent
演示->当我同时使用这两种方法时,它总是为这两种方法返回相同的col值“Mobile”tag@anilsinghbutola,好的,您希望多次使用该指令会发生很大变化:)请参阅更新。
<grid-sort col="lMember_id" variable="lMember_id"></grid-sort>
app.directive("gridSort", function () {
return {
template:
'<button ng-click="Direction=-1;SetSortValue();orderBy();" ng-init="info.CurrentPage=0"><i class="fa-angle-double-up fa"></i></button>' +
'<button ng-click="Direction=1; SetSortValue();orderBy();" ng-init="info.CurrentPage=1000"><i class="fa-angle-double-down fa"></i></button>'
,
link: function (scope, element, attrs) {
scope.SetSortValue = function () {
if (scope.Direction == -1) {
scope.info.CurrentPage = 0;
scope.info.Direction = 'Asc';
}
else if (scope.Direction == 1) {
scope.info.Direction = 'Desc';
scope.info.CurrentPage = 1000;
}
}
}
};
});
$scope.orderBy = function () {
var data = $scope.info;
Request.GetTabledata("SelectMemberData", data, $scope, true);
};