您可以将变量与 NG-CLASS 活动链接与 Angular 一起使用吗?
Can you use variables with NG-CLASS active link with Angular?
我想使用循环来创建我的导航 这是我的代码 我不断收到错误,说它不会计算为字符串?我编写的代码是为了让它遍历 $scope.navigation 并使用它来写出导航,这样我就不必写出每个列表和锚标记?
<!DOCTYPE html>
<html ng-app="Sample">
<head>
<title>Sample Angular App</title>
<script src="Scripts/basket.js"></script>
<link rel="stylesheet" href="css/global.css"/>
<script src="Scripts/angular.min.js"></script>
<script src="controllers/main.js"></script>
<script src="routes/route.js"></script>
</head>
<body>
<div class="navigation" ng-controller="AppCtrl">
<ul class="cf" >
<li class="link {{link.name}}" ng-class="{{link.name + 'Active'}}" ng-repeat="link in navigation">
<a href="{{link.route}}" ng-click="setActive($index)">{{link.name | uppercase}}</a>
</li>
</ul>
</div>
<div class="wrapper">
<div ng-view>
</div>
</div>
</body>
</html>
我的主要js脚本文件如下所示:
function AppCtrl($scope) {
$scope.navigation = [
{ name:"main", route:"#/"},
{ name:"edit", route:"#/edit" },
{ name: "save", route: "#/save" },
{ name: "settings", route: "#/settings" }
];
$scope.currentPage = null;
$scope.setCurrentPage = function (index) {
$scope.currentPage = $scope.navigation[index];
}
$scope.setActive = function (index) {
angular.forEach($scope.navigation, function (value, key) {
$scope[value.name + 'Active'] = "";
});
var active = $scope.navigation[index].name;
$scope[active + 'Active'] = "active";
}
}
它一直给我一个错误,说 {{link.name}} 不能被评估为字符串,但它是一个字符串?有没有办法循环遍历 $scope.navigation 并让它输出导航,而无需手动写出它并仍然添加 setActive 函数?我对使用angularjs有点陌生。有没有办法解决这个问题,还是在角度中不允许以这种方式做事?
有一种
更好/更简单的方法来完成设置active
CSS类。只需在作用域中保存一个值,该值保存活动内容的值。像这样:
$scope.setActive = function (index) {
$scope.activeIndex = index;
};
然后ng-class
允许你给它一个映射,其中"值为真实的属性的名称将作为css类添加到元素中"(来自 http://docs.angularjs.org/api/ng.directive:ngClass)。
因此,如果$index
是activeIndex
,则可以设置CSS类:
ng-class="{active: $index == activeIndex}"
我已经测试了dnc253的解决方案。但它似乎不再有效了。
我必须创建这样的方法:
$scope.isActive = function(index){
return $scope.activeIndex === index;
};
在 html 中:
ng-class="{active: isActive($index)}"
这工作正常。
相关文章:
- 如何使Angular JS控制器与指令一起工作
- 将jQuery动画与angular的ngAnimate一起使用
- 如何在angular 1.5中将angular component与ui.bootstrap.modal一起使用
- 如何重写Jasmine 2.0自定义匹配器以与Angular 1.5一起使用
- 使ng-show/ng-hide与由Angular之外的外部源修改的localStorage一起工作
- 在Angular中与$scope一起安全地使用eval()
- 剑道网格:如何在与Angular一起使用时从组合框单元格模板中获取所选项目
- 无法将eval()与angular一起使用
- 无法让 Angular-ui ui.route 与 Apache 一起路由
- Angular 和 Animate.css - 一起使用时不显示正确的信息
- 多个 Angular 验证器独立工作,但不能一起工作
- 将 r.js 与 Angular 和 Required 一起使用
- 将 ng-style 与 switch 语句一起使用 - angular JS
- 我什么时候应该将双节棍与 Angular 一起使用
- 您可以将变量与 NG-CLASS 活动链接与 Angular 一起使用吗?
- 将本地数据与 Angular 资源一起使用
- 将angular服务与es6模块一起使用有意义吗
- Angular UI和Bootstrap UI结合在一起
- 主干模型可以与angular一起使用吗
- 如何将单一品牌的所有产品组合在一起——angular JS