我在重定向到应用程序内的其他页面时遇到问题。我有动态生成的菜单(使用devExtreme treeView组件)。我包括了angularjs和angular-route,在MainApp.config中创建了路由,并且每个重定向调用都返回404错误。
这是我的index.html:
<body class="dx-viewport">
<div class="container" ng-app="MainContainer" ng-controller="MainController">
<div class="left-content">
<div id="simple-treeview" dx-tree-view="treeViewOptions"></div>
</div>
<div class="right-content">
<div ng-view></div>
</div>
</div>
这是我的index.js:
MainApp.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/blank.html',
controller: 'MainController'
})
.when('/login', {
templateUrl: 'views/Login.dxview',
controller: 'LoginController'
})
.when('/test', {
templateUrl: 'views/TestView.dxview',
controller: 'TestController'
}); });
MainApp.controller("MainController", function MainController($scope, $window) {
$scope.treeViewOptions = {
dataSource: treeLoginOption,
selectionMode: "single",
selectByClick: true,
displayExpr: "name",
keyExpr: "name",
onItemClick: function (e) {
var viewType = e.itemData.type;
if (viewType == "Login") {
$window.location.href = "login";
rebuildMenu();
}
else
{
//
}
}
} });
所以这里的问题是:当我单击菜单上的“登录”时,它将我重定向到http://localhost:50073/login并返回404错误。
如何在单页应用中适当地包含角度路由?
感谢您的咨询。
答案 0 :(得分:0)
好吧,再做些挖掘。
我用$ location作为先生。 MS_AU评论。然后将其添加到我的配置中:
$locationProvider.html5Mode(
{
enabled: true,
requireBase: false
});
并以这种方式进行了呼叫:
if (viewType == "Login") {
$location.path("/login");
rebuildMenu();
}
else
{
$location.path("/" + viewType);
}
以这种方式工作。但是由于某种原因,Login.dxview页面中的控制器称为2次。