2013-10-21 4 views
5

Ich benutze Winkel, um eine Anwendung zu entwickeln. Ich entwickle mein lokales Dateisystem unter Windows. Jedoch, wenn ich aktiviere, wenn ich index.html mit meinem Browser treffe, geht es stattdessen zu index.html#/C:/.Funktionieren Winkelansichten, wenn eine Site vom lokalen Dateisystem bedient wird?

Meine Route Definition lautet:

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

Ich denke, dies ist die Seite verursacht, zu brechen, weil /C:/ keine Winkel Routen überein. Was läuft falsch? Wie behebe ich das?

+0

ja Winkel js wird von den lokalen arbeiten. – nycynik

+0

Dann warum nicht? –

+0

Bitte posten Sie Ihre Route Definition – nycynik

Antwort

6

Für Routing & Ajax (& mehr) ordnungsgemäß funktionieren, führen Sie einen lokalen Entwicklungsserver; Vermeiden Sie die Verwendung von file:// für die Entwicklung, da Browser unterschiedliche Regeln dafür haben.

Tools wie yeoman + generator-angular eine gruntfile mit einer server Aufgabe automatisch eingerichtet, die einen node-connect Server lokal dienen Dateien ausgeführt werden.

Sie können dies tun, mit

  • Python: (3) python -m http.server 8001 (ersetzen http.server mit Simple in 2)
  • node.js + connect
  • ruby + rack
  • Vom AngularJS Tutorial (number 5 under "working with the code") - "Sie benötigen einen HTTP-Server, der auf Ihrem System ausgeführt wird, aber wenn Sie noch keinen installiert haben, können Sie mit dem Knoten scripts \ web-server.js ausführen, einen einfachen, gebündelten http-Server."

Antwort von Kommentaren: Für phonegap verwenden the phonegap tools. Es macht genau das, was ich gesagt habe, es läuft ein local server.

+0

Ich glaube, die Phonegap-Tools wurden entwickelt, um Phonegap-Anwendungen lokal oder remote zu kompilieren und zu verpacken und die daraus resultierenden Builds in Simulatoren auszuführen. Dateien nicht lokal bereitstellen. –

+0

https://github.com/phonegap/phone-ap-cli/blob/e6b76e1627713c02c5fa02ead0cc06c63f9b7749/lib/phonegap/app.js#L27 - "Erzeugt einen lokalen Server, um das Projekt zu bedienen. Der beabsichtigte Empfänger ist die PhoneGap App, aber jeder Browser kann den Inhalt konsumieren. " – forivall

+1

Auch bearbeitet: Das eckige Tutorial selbst sagt Ihnen, dass Sie einen HTTP-Server ausführen sollen. Es gibt wahrscheinlich etwas, das besagt, dass man es nicht von 'file: //' ablaufen lassen kann, aber es lohnt sich nicht, es zu finden, weil ich weiß, dass es wahr ist; Sie können es nicht von 'file: //' ausführen; eckig kann den Windows-Pfad nicht als Root-Verzeichnis analysieren, da es sich nicht um eine URL handelt, die jemals in der freien Wildbahn vorkommen würde. – forivall

3

Dies wird funktionieren.

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'}); 
}); 

In Index HTML müssen Sie Vorlagen angeben:

<script type="text/ng-template" src="./js/templates/home.html"></script> 
<script type="text/ng-template" src="./js/templates/other.html"></script>