gpt4 book ai didi

javascript - 如何以 Angular 干燥列表

转载 作者:行者123 更新时间:2023-11-29 14:40:33 24 4
gpt4 key购买 nike

这是我第一次在 stackoverflow 上发布问题,如果格式不正确,我们深表歉意。

我一直在 Angular 上遇到同样的问题,我确信有一种非常简单的方法可以解决它,但由于某种原因我无法弄清楚。我将在下面发布一个示例并给出解释。

<div class="jmc-navbar-content" ng-if="!vm.isHidden" ng-swipe-up="vm.toggleNav()">
<!-- contains the navigation/page links -->
<ul class="jmc-navbar-menu">
<li class="active"><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="#home">Home</a></li>
<li><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="#portfolio">Portfolio</a></li>
<li><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="#about">About</a></li>
<li><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="#contact">Contact</a></li>
<li><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="#/">View source on GitHub</a></li>
</ul>
</div>

虽然这有效,但我不喜欢为所有 <a> 重复自己需要具有相同类和属性的标签。我可以想出多种方法来使用 javascript 执行此操作,但它们似乎都有点“hack-y”。在 Angular 或 Javascript 中有什么简单的方法可以做到这一点吗?

感谢您抽出宝贵的时间回复,感谢任何和所有建设性的批评。

最佳答案

首先,您可以使用路径占位符(显示)创建对象数组:

然后你可以使用ngRepeat指令:

<li ng-class="{ 'active': $first }" ng-repeat="link in vm.links"><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="{{link.path}}">{{link.display}}</a></li>

看到它工作:

(function() {
'use strict';

angular
.module("app", [])
.controller('MainCtrl', MainCtrl);

function MainCtrl() {
var vm = this;
vm.links = [
{
"path": "#home", "display": "Home"
},
{
"path": "#portfolio", "display": "Portfolio"
},
{
"path": "#contact", "display": "Contact"
},
{
"path": "#about", "display": "About"
},
{
"path": "#/", "display": "View source on GitHub"
}
];
}
})();
<!DOCTYPE html>
<html ng-app="app">

<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
</head>

<body ng-controller="MainCtrl as vm">
<li ng-class="{ 'active': $first }" ng-repeat="link in vm.links"><a class="noPreventDefault" ng-click="vm.toggleNav()" ng-href="{{link.path}}">{{link.display}}</a></li>
</body>

</html>

希望对你有帮助。

关于javascript - 如何以 Angular 干燥列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38811228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com