我正在使用模板来构建我的应用。基本上有一个主页面,然后我使用ng-view加载其他页面。 index.html中的href链接正常工作。但我也希望能够在js函数中更改ng-view。这是怎么做到的?
我尝试使用$location.path
转到红页,但除了打印到控制台外似乎没有任何事情发生。在此之前,我尝试使用$window.location.href()
,它确实转到了页面,但删除了index.html容器,打破了应用。
修改
正如Siddhesh的回答评论所指出的,如果不与$locationProvider.html5Mode(true);
一起使用,它就有效。但我想保持干净的网址。所以,如果可能的话,我正在寻找一种方法来保留它。
的index.html
<head>
<base href="/testing/onetest/">
<script>
app.controller('masterController',function($location){
setTimeout(change, 3000);
function change() {
console.log("changing in 3 seconds");
$location.path('/red');
}
});
</script>
</head>
<body ng-app="app" ng-controller="masterController">
<a href="/testing/onetest/">Main</a>
<a href="red">Red</a>
<a href="green">Green</a><br>
<div ng-view></div>
</body>
app.js
var app = angular.module("app", ["ngRoute"]);
app.config(function($routeProvider,$locationProvider) {
$routeProvider
.when("/", {
templateUrl : "home.html",
controller : 'mainController'
})
.when("/red", {
templateUrl : "red.html"
})
.when("/green", {
templateUrl : "green.html"
});
$locationProvider.html5Mode(true);
});
答案 0 :(得分:2)
对于角度js版本小于1.6
$window.location.href= '#red';
对于角度js版本1.6或更高
$window.location.href= '#!red';
试试这个,看它是否有效。这可能有助于您从功能更改ng-view。它对我有用。