gpt4 book ai didi

javascript - Angular.js 路由似乎不起作用

转载 作者:行者123 更新时间:2023-12-03 08:04:44 25 4
gpt4 key购买 nike

我正在自学一些 AngularJS 并取得了一些进展。以下项目的路由似乎不起作用,但我不知道我做错了什么。我使用 WebStorm。

我做了一个练习(添加名称部分),现在我试图显示索引页面上的 View 中的内容,但这似乎不起作用。索引.html:

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="angular/angular.js"></script>
<script src="angular/angular-route.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="myController as ctrl">
<h1>Lijst met namen</h1>
<input type="text" placeholder="voornaam..." ng-model="ctrl.voornaam">
<input type="text" placeholder="achternaam..." ng-model="ctrl.name">
<input type="button" value="Persoon toevoegen" ng-click="ctrl.addNaam()">
<ul>
<li ng-repeat="person in ctrl.personen">
{{person.name}} {{person.voornaam}}
</li>
</ul>



</div>
<div role="navigation">
<nav>
<a href="#/home">Home</a>
<a href="#/about">About us</a>
<a href="#/contact">Contact us</a>
</nav>
</div>
<div ng-view></div>




<script src="controller.js"></script>
<script src="aboutController.js"></script>
<script src="contactController.js"></script>
<script src="homeController.js"></script>


</body>
</html>

应用程序.js:

angular.module('myApp',['ngRoute']).config(moduleConfig);

//Inject dependencies
moduleConfig.$inject = ['$routeProvider'];

//routes configureren
function moduleConfig($routeProvider) {
$routeProvider.when('/', {
templateUrl: 'views/home.html',
controller: 'homeController',
controllerAs: 'homeCtrl'
})
.when('/home', {
templateUrl: 'views/home.html',
controller: 'homeController',
controllerAs: 'homeCtrl'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'aboutController',
controllerAs: 'aboutCtrl'
})
.when('/contact', {
templateUrl: 'views/contact.html',
controller: 'contactController',
controllerAs: 'contactCtrl'
})
.otherwise({
redirectTo: '/'
});
} })();

Controller .js:

angular.module('myApp', []).controller('myController', myController);
function myController(){
var vm = this;

vm.personen = [
{name: 'Schrooten', voornaam: 'Mathias'}
];

vm.addNaam = function(){
var newName = {
voornaam: this.voornaam,
name: this.name
};
this.personen.push(newName);
window.alert('Persoon toegevoegd!')
}
}

关于 Controller :

angular.module('myApp').controller('aboutController', aboutController);
function aboutController(){
this.msg = 'Hello';
}

其他 2 个 Controller 看起来几乎相同(contactController.js 和 homeController.js)

浏览次数:about.html:

<div>
<p>About us: ....</p>

<input type="text">
</div>

其他 2 个 View 也是如此。

最佳答案

这行 angular.module('myApp', []) 初始化一个模块。所以基本上你必须初始化一次。那么你可以像这样使用它 angular.module('myApp')

所以你的代码中是这样的:

angular.module('myApp', []).controller('myController', myController);

必须变得像下面的行,因为您已经定义了 myApp 模块:

angular.module('myApp').controller('myController', myController);

关于javascript - Angular.js 路由似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434915/

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