使用ng-route in angular使用routeconfig参数路由到不同的htmls

时间:2015-07-03 12:46:12

标签: angularjs

我是角度路由的新手。我有一个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");

}]) 

两个控制器都没有加载。主控制器类似于测试控制器。我在这里缺少什么?

1 个答案:

答案 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