【问题标题】:AngularJS ng-view commented outAngularJS ng-view 注释掉了
【发布时间】:2015-05-09 17:13:28
【问题描述】:

我想在 angularjs 中使用 ng-view。我在一个文件夹中创建了 3 个 html 文件。其中两个“view1.html”和“view2.html”是必须在ng-view中加载的页面。第三个文件是我的主文件,其中包含如下 angularjs 代码:

<head>
<meta charset="utf-8" />
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"></script>
<script>
    var angularModule = angular.module('demoApp', ['ngRoute']);

    angularModule.config(['$routeProvider',
        function ($routeProvider) {
            $routeProvider
            .when("/viewq", { controller: "testController", templateUrl: "/view1.html" })
            .when('/vieww', { controller: 'testController', templateUrl: '/View2.html' })
            .otherwise({ redirectTo: '/viewq' });
        }]);

    angularModule.controller('testController', function ($scope) {
        $scope.systemData = [{ name: "Test", city: "Frankfort" },
            { name: "John", city: "New york" },
            { name: "Mike", city: "London" }
        ];

    });

</script>

<body>
   <div ng-app="demoApp">
      <div ng-view></div>
   </div>
</body>

问题是 ng-view 被注释掉了,所以我没有加载 html 文件。

注意:我收到此错误: XMLHttpRequest 无法加载 file:///C:/AngularJS/view1.html。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

这是否意味着不托管它就无法编写 ng-view?如果是这样的话,谁能给我一个参考?

【问题讨论】:

标签: javascript angularjs angularjs-directive


【解决方案1】:

要使用 ng-view,您可能会想要使用服务器,否则您很可能会遇到您面临的跨源请求问题。但是,如果真的想使用本地文件系统,您可以禁用它chrome 中的原产地政策(虽然我不确定这是否可行,我什至也不推荐它):Disable same origin policy in Chrome

这里提到了另一种替代方法: https://stackoverflow.com/a/23492993/3006737

我个人也不会这样做,建议您使用某种服务器。您甚至不需要使用任何服务器功能。只是为了运行实际页面。我通常只运行内置的 PHP 服务器(即使我没有使用任何 PHP 文件),尽管像 Node 和 Apache 这样的东西可以正常工作。

http://php.net/manual/en/features.commandline.webserver.php

【讨论】:

  • 为了使用 ngview,我们需要将页面托管在 IIS 等 Web 服务器上,因为 AngularJS 使用 Ajax 在 ng-view 中加载页面。
  • 没错。尽管 AngularJs 使用 AJAX 来加载数据,但出于安全原因,在使用“ng-view”时,您需要一个网络服务器来运行 Angular 应用程序。否则,任何网站都可能访问您的文件系统。
猜你喜欢
  • 2016-07-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多