gpt4 book ai didi

AngularJS:ng-view 指令不起作用

转载 作者:行者123 更新时间:2023-12-04 01:55:11 24 4
gpt4 key购买 nike

我现在正在学习 AngularJS,我正在做一个涉及使用 ng-view 指令的简单网络应用程序。但是当我尝试运行我的代码时,我的 Chrome 浏览器上什么也没有出现,就好像 ng-view 没有真正工作一样。我的 index.html 文件如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Route Sample</title>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
</head>
<body ng-app="routeApp">
<h1>Sample Routing | ng-view directive</h1>

<div class="container">
<ul>
<li><a href="#Angular">Angular JS Topics</a></li>
<li><a href="#Node">Node JS Topics</a></li>
</ul>
</div>
<div class="container-ngView">
<div ng-view></div>
</div>

<script>
var app=angular.module('routeApp', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/Angular', {
templateUrl: 'angular.html',
controller: 'AngularCtrl',
})
.when('/Node', {
templateUrl: 'node.html',
controller: 'NodeCtrl',
});
}]);

app.controller('AngularCtrl', function($scope){
$scope.tutorial = [
{Name:"Controllers", Description :"Controllers in action"},
{Name:"Models", Description :"Models and binding data"},
{Name:"Directives", Description :"Flexibility of Directives"}
]
});
app.controller('NodeCtrl', function($scope){
$scope.tutorial = [
{Name:"Promises", Description :"Power of Promises"},
{Name:"Event", Description :"Event of Node.js"},
{Name:"Modules", Description :"Modules in Node.js"}
]
});
</script>


</body>
</html>

这是我的 angular.html 文件

<h2>Anguler</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>

这是我的 node.html 文件

<h2>Node</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>

我确实尝试将我的 js 脚本文件与我的主 html 文件分开,但结果仍然相同。我不知道该怎么做以及在哪里找到问题。我希望你能帮我解决这个问题。谢谢!

最佳答案

您需要在 AngularJS 之后 引用 ngRoute 模块脚本。简单地交换它们。

此外,您使用的是 AngularJS 1.6.X,它在 URL 中有不同的哈希爆炸。您需要将 href# 更改为 #!

这是一个工作示例:

var app = angular.module('routeApp', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/Angular', {
templateUrl: 'angular.html',
controller: 'AngularCtrl',
})
.when('/Node', {
templateUrl: 'node.html',
controller: 'NodeCtrl',
});
}]);

app.controller('AngularCtrl', function($scope) {
$scope.tutorial = [{
Name: "Controllers",
Description: "Controllers in action"
},
{
Name: "Models",
Description: "Models and binding data"
},
{
Name: "Directives",
Description: "Flexibility of Directives"
}
]
});
app.controller('NodeCtrl', function($scope) {
$scope.tutorial = [{
Name: "Promises",
Description: "Power of Promises"
},
{
Name: "Event",
Description: "Event of Node.js"
},
{
Name: "Modules",
Description: "Modules in Node.js"
}
]
});
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Route Sample</title>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
</head>

<body ng-app="routeApp">
<h1>Sample Routing | ng-view directive</h1>

<div class="container">
<ul>
<li><a href="#!Angular">Angular JS Topics</a></li>
<li><a href="#!Node">Node JS Topics</a></li>
</ul>
</div>
<div class="container-ngView">
<div ng-view></div>
</div>

<script type="text/ng-template" id="angular.html">
<h2>Angular</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>
<a href="#!/">Back</a>
</script>

<script type="text/ng-template" id="node.html">
<h2>Node</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>
<a href="#!/">Back</a>
</script>

</body>

</html>

关于AngularJS:ng-view 指令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51057451/

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