当用户选择链接时,我希望按照用户选择的方式在相同的页面中加载其他html的内容。提供的链接在控制器(MyController)中。如何根据用户选择加载red.html和green.html。如果链接不在ng控制器内,下面的js代码可以工作。
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<body ng-app="myApp">
<div ng-controller="myController">
<a href="#!red">Red</a>
<a href="#!green">Green</a>
<div ng-view></div>
</div>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl : "main.htm"
})
.when("/red", {
templateUrl : "red.html"
})
.when("/green", {
templateUrl : "green.html"
})
.when("/blue", {
templateUrl : "blue.html"
});
});
</script>
</body>
</html>PS:我希望链接在ng-controller="myController"内部,基于用户选择,我希望在同一个页面中加载html页面。如果我从div中删除ng控制器,它将加载内容,但我希望链接在控制器内,如上面的代码所示。
发布于 2017-09-28 17:18:06
问题是您没有按下面的方式实现控制器。
//DEFINE THE CONTROLLER
////////////////////////////////
app.controller("myController", function(){
});看看下面的例子,它运行得很好。另外,为了演示目的,我将templateUrl修改为template。
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<body ng-app="myApp">
<div ng-controller="myController">
<a href="#!red">Red</a>
<a href="#!green">Green</a>
<div ng-view></div>
</div>
<script>
var app = angular.module("myApp", ["ngRoute"]);
//DEFINE THE CONTROLLER
////////////////////////////////
app.controller("myController", function() {
});
app.config(function($routeProvider) {
$routeProvider
.when("/", {
template: "<h1>Home</h1>"
})
.when("/red", {
template: "<h1>Red</h1>"
})
.when("/green", {
template: "<h1>Green</h1>"
})
.when("/blue", {
template: "<h1>Blue</h1>"
});
});
</script>
</body>
</html>
https://stackoverflow.com/questions/46474766
复制相似问题