我正在尝试运行此代码:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>Exemple 06</title>
</head>
<body>
<!-- Diretiva ng-repeat -->
<div ng-controller="MyController">
<a ng-href="#/">Page 1</a> | <a ng-href="#/p2">Page 2</a>
<div ng-view="#/p2"></div>
</div>
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<script type="text/javascript">
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function($routeProvider){
$routeProvider
.when('/' , {controller: 'MyController', templateUrl: 'p1.html'})
.when('/p2', {controller: 'MyController', templateUrl: 'p2.html'})
.otherwise({ redirectTo: '/'});
});
myApp.controller('MyController', function($scope){
$scope.nomes = [
{id: 1, nome: 'Arthur'},
{id: 2, nome: 'Portos'},
{id: 3, nome: 'Aramis'}
];
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
但是会出现以下错误:
XMLHttpRequest无法加载file:///home/93579551515/Desktop/Angular/p1.html.仅支持HTTP的跨源请求.
我不想在网络服务器上运行它.
我目前正在尝试构建一个运行在闪存驱动器上的"Web应用程序",因此没有任何其他环境需要启动带有一些启动选项的chrome以及闪存驱动器上index.html文件的路径.
我在使用file://协议加载文件而不是通过Web服务器加载angularJS时遇到了一些麻烦.
我已经通过将html5模式设置为true来加载本地资源(如视频)但我目前无法使用路由提供程序.
这就是我所拥有的:var testApp = angular.module("testApp",['angular-underscore',"ngRoute","com.2fdevs.videogular"]);
testApp.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/', {template: '/views/MainView.html', controller: "VideoPlayerController" })
.otherwise({redirectTo:'/'});;
});
Run Code Online (Sandbox Code Playgroud)
每当我通过双击文件在Chrome中加载我的index.html文件时,网址就会以"file://"开头.当我通过命令行使用基本选项"--allow-file-access-from-files" 启动时,也会发生这种情况.
如何通过file://使routeProvider按预期工作?除非我将以下内容添加到index.html中的head标签,否则它目前无法识别"其他"路径
<base href="/index.html">
Run Code Online (Sandbox Code Playgroud)
但最终结果是
file:///
Run Code Online (Sandbox Code Playgroud)
在Chrome的网址字段中.所有其他资源都无法加载.下面是一个我只看到一个控制器组合的错误的例子.
GET file:///index.html net::ERR_FILE_NOT_FOUND
Run Code Online (Sandbox Code Playgroud)
谢谢!(我知道如果我愿意使用网络服务器,我的所有问题都会消失,但我现在不允许进入这个项目)