AngularJS路由配置

时间:2013-05-09 12:55:09

标签: javascript angularjs url-routing

我是angularjs的新手,只是想用它来构建一个CRUD应用程序。

我的代码就像这个http://jsfiddle.net/fpnna/1/

我在使用

时使用apache作为webserver
$locationProvider.html5mode(true);

然后获得

uncaught TypeError: Object #<Ic> has no method 'html5mode' from testApp 

当我点击“添加新”时,路径更改为“/ new”但收到错误

404 The requested URL /new was not found on this server.

知道我做错了什么。

我查完了官方手册,无法弄清楚。

提前致谢。

1 个答案:

答案 0 :(得分:5)

你有几个问题,首先在jsfiddle你不需要身体标签加上你有多个身体标签。你的小提琴有两个ng-apps,路由定义不正确(例如应该是/ new),无效的ng-view结束标记,应该只有一个。您应该在头部中包含没有换行的javascript,最后在模式上使用html5Mode并且大小为M,并且您的部分不存在于其网址中,也不会将它们定义为本地脚本。

我建议您使用plunkr,因为它允许您添加其他本地文件,即您在小提琴中不存在的部分文件。

我已经清理了这个问题上的所有问题:http://plnkr.co/edit/A23Fxn9Ji02TGZ0jouZR?p=preview

angular.module('testApp', []).
config(function ($routeProvider, $locationProvider) {
     $locationProvider.html5Mode(true);  // case is important
    $routeProvider.
    when("/", {
        templateUrl: "list.html"
    }).
    when("/new", {  // make sure and use absolute link to route
        templateUrl: "edit.html"
    })
})

function testCtrl($scope) {
    $scope.persons = [{
        name: "X"
    }, {
        name: "Y"
    }, {
        name: "Z"
    }]
}

和html:

<body ng-controller="testCtrl" >
  <div class="main-nav">  <a href="new">Add Me</a>
    </div>INDEX
    <div  >
        <div ng-view>

        </div>
    </div>
</body>

请查看文档和教程,了解有关设置项目的基础知识。 http://docs.angularjs.org/guide/bootstrap