5

我正在使用 Angular 开发应用程序。我正在 Windows 上开发我的本地文件系统。但是,当我启用angular-route.js时,每当我index.html使用浏览器点击时,它都会转到index.html#/C:/.

我的路线定义是:

myApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {templateUrl: 'home.html', controller: 'HomeCtrl'});
}

我认为这会导致网站中断,因为/C:/不匹配任何角度路线。怎么了?我该如何解决?

4

2 回答 2

7

要让路由和 ajax (& 更多) 正常工作,请运行本地开发服务器;避免file://用于开发,因为浏览器有不同的规则。

yeoman+之类的工具generator-angular会自动设置一个带有server任务的 gruntfile,该任务将运行一个node-connect服务器以在本地为您的文件提供服务。

你可以这样做

  • python:(3)python -m http.server 8001(将http.server替换为2中的SimpleHttpServer)
  • node.js + 连接
  • 红宝石+机架
  • 来自 angularjs 教程(“使用代码”下的第 5 号)-“您需要在系统上运行一个 http 服务器,但如果您还没有安装,您可以使用 node 运行脚本\web-server .js,一个简单的捆绑 http 服务器。”

评论回复:对于 phonegap,请使用phonegap 工具。它完全按照我所说的那样运行,它运行本地服务器。

于 2013-10-21T19:25:55.250 回答
3

这将起作用。

angular.module('MainModule', []).config(function($locationProvider, $routeProvider) {
    $locationProvider.hashPrefix("!");
    $locationProvider.html5Mode(false);
    $routeProvider.when('/', {template: './js/templates/home.html', controller:HelloWorldCtrl});
    $routeProvider.when('/other', {template: './js/templates/other.html'});
});

在 index HTML 中,您需要指定模板:

<script type="text/ng-template" src="./js/templates/home.html"></script>
<script type="text/ng-template" src="./js/templates/other.html"></script>
于 2014-05-06T11:06:57.717 回答