我是角度路由的新手。我有一个index.html和home.html。我想要做的是默认情况下应该加载index.html。有一个从index.html到home.html的链接。如何使用默认URL使用路径加载索引文件 http://localhost/myapp?user=123
我已将我的代码库部署在IIS中,虚拟目录为myapp。
此外,当我点击主页链接时,网址应更改为
http://localhost/myapp/index.html#/home
我想做的是:
app.js
var app = angular.module('myApp', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl:'index.html', controller: 'MainController'});
$routeProvider.when('/home', {templateUrl:'home.html',controller: 'TestController'});
$routeProvider.otherwise({redirectTo: '/home'});
}]);
的index.html
<div class="main" ng-controller="MainController as main">
<li><a href="#/home">Home</a></li>
</div>
Controller.js
app.controller('TestController', ['$scope', '$log','$location', function($scope,$log,$location) {
$log.info("Test Controller loaded");
test();
$scope.test = function(){
console.log("Test");
}
$log.info("Test Controller function");
}])
两个控制器都没有加载。主控制器类似于测试控制器。我在这里缺少什么?
答案 0 :(得分:1)
我无法发表评论,因为我没有足够的声誉,但您的代码中是否有ng-app
指令?像body / html标签中的ng-app="myApp"
或类似的东西?另外,如果您使用的是角度路由,则不应在ng-controller
文件中使用index.html
指令,因为您的路由器将设置控制器。
编辑:我认为这是您的代码或代码结构的问题。
index.html
指令和ng-app
ng-view
index.html
内容应该在另一个html文件中(例如下面的plunker中的nav.html
)这是我为了让代码正常工作所必须做的唯一事情。
您可以查看此plunker,它主要重用您的代码: http://plnkr.co/edit/DbgJKe51c7QoGCG6rXlN?p=info