如何在angular js中为ng-click分配数组元素值
how to assign array element value to ng-click in angular js
在我的程序中,我有一个Array
,它由头名称和函数名称组成。我在由span
标签组成的div
中使用ng-repeat
。我想为每个迭代跨度添加不同的功能,所以我将函数名存储在数组中。我的html代码是:
<div ng-repeat="header in header" ng-init="head=header">
<h4 class="headers">{{ header.name}}</h4>
<div class="arrow-up" ng-show={{ header.arrowup}} ng-click={{header.close}}> </div>
</div>
我的角度代码是:
$scope.header=[{"name":"Subsection Header #1","arrowup":"arrowup","close":"close()"}];
$scope.close = function() {
console.log(hello);
};
我想将close()分配给ng点击,并将箭头向上分配给ng显示。如何将它们分配给ng-click
和ng-show
更改:
<div class="arrow-up" ng-show={{ header.arrowup}} ng-click={{header.close}}>
收件人:
<div class="arrow-up" ng-show="header.arrowup" ng-click="this[header.close]()">
<button>
CLOSE ME
</button>
</div>
演示=http://jsfiddle.net/Lvc0u55v/1788/
ng点击是我看到的问题,
<div class="arrow-up" ng-show="header.arrowup" ng-click="header.close"></div>
我们不需要给ng点击和ng显示{{}}。
希望能有所帮助。
首先需要将一个实函数传递给数组:
function arrowUp(){
// ng-show needs to receive true or false
return true;
}
function close(){
// do something here
}
$scope.headers=[{"name":"Subsection Header #1","arrowup":arrowUp,"close":close}];
将它们绑定在一个视图中:
<div ng-repeat="header in headers">
<h4 class="header">{{ header.name}}</h4>
<div class="arrow-up" ng-show="header.arrowup()" ng-click="header.close()"> </div>
</div>
你需要使用$eval
方法,你可以在这里阅读更多关于它的信息
$scope$eval在当前作用域上执行表达式并返回结果。表达式中的任何异常都会传播(未捕获)。这在评估角度表达式时很有用
HTML:
<div ng-controller="TestController">
<div ng-repeat="header in headers">
<h4>{{ header.name}}</h4>
<button type="button" ng-click="onExecuteFunctionFromString(header.close)">Click Here</button>
</div>
</div>
JS:
var myApp = angular.module('myApp', []);
myApp.controller('TestController', ['$scope', function($scope) {
$scope.headers = [{
"name": "Subsection Header #1",
"arrowup": "arrowup",
"close": "close()"
}];
$scope.close = function() {
console.log('hello');
};
$scope.onExecuteFunctionFromString = function(stringFunction) {
$scope.$eval(stringFunction)
};
}]);
请参阅此处的工作示例
相关文章:
- Angular,表达式{{}}的结果没有插入到ng-click中
- Ng隐藏在Ng-click元素之外
- 如何在ng-click中传递php对象
- AngularJs的ng-click$事件将子元素作为目标传递
- 使用jqGrid列格式化程序函数使ng-click工作
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- ng-click指令没有调用整个函数
- 在控制器中添加$location依赖项时,ng-click停止激发
- 如何在ng repeat中使用ng click
- 将我的列表 vom ng-repeat 更改为收集重复 ng-click 后,无法正常工作
- 在 ng-click 中设置$scope变量指令
- 在 Angular 指令中定义一个用于 ng-click 的函数
- 为什么我们需要 ng-click
- (angularJS)使ng-click在ng-repeat上打开一个链接
- 为什么ng-click被称为按钮被点击的次数
- AngularJS:如何防止ng-click以子元素为目标
- 另一个 ng-click() 未按预期工作
- 角度:编译谷歌地图信息窗口内容以使用ng-click
- 是否可以在 ng-click 中调用函数字符串
- 如何在 ng-click 函数中更改$rootScope值