如果else为Angular,则使用ng click函数重复ng
ng-repeat with ng-click function if else Angular
当您在ng class="{{sectionClass}}"中单击某个addOn时,我想向元素添加一个类。
有更好的方法来实现这一点吗?
我的方法不起作用,我不确定代码出了什么问题。
$scope.addOns = [
{
name: "Cover options"
},
{
name: "Stamping"
}
];
$scope.sectionClass = function(addOn){
if (addOn.name == "Cover options")
return("covers");
else if (addOn.name == "Stamping")
return("stamping");
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="section-content" ng-class="{{sectionClass}}">
<div class="add-on-type" ng-click="sectionClass(addOns)" ng-repeat="addOn in addOns">
<span>{{addOn.name}}</span>
</div>
</div>
您错过了
-
从
ng-repeat
ng-click
函数传递addon
对象,如ng-click="sectionClass(addOn)"
-
不要从方法返回字符串,而是设置一个像
customClass
&在ng-class
指令中使用
HTML
<div ng-app="myApp" ng-controller="MyCtrl" >
<div class="section-content" ng-class="{{customClass}}">
<div class="add-on-type" ng-click="sectionClass(addOn)" ng-repeat="addOn in addOns"> <span>{{addOn.name}}</span>
</div>
</div>
</div>
控制器
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function ($scope) {
$scope.addOns = [
{
name: "Cover options"
}, {
name: "Stamping"
}];
$scope.sectionClass = function (addOn) {
if (addOn.name == "Cover options")
$scope.customClass="covers"
else if (addOn.name == "Stamping")
$scope.customClass="stamping"
}
});
工作Fiddle
希望这能对你有所帮助。谢谢
相关文章:
- 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值