2014-07-17 15 views
12

Bir galeri olan bir angularJS uygulamasına sahibim. Her resim için ilişkili ng-href#/{{files.id}} ile. Bunu tıkladığınızdaAngularJS ng-href url'm "eğik çizgisini" "% 2f" ye dönüştürüyor

<a ng-href="#/{{files.id}}"...

Ancak, sonuçta görüntülenen URL

http://localhost:3000/gallery#%2F0 birisi açıklayabilir

when('/gallery/:imageID', { templateUrl: 'load_image.html' }).

benim açısal yönlendirme yok eder

bana URL’leri doğru şekilde kodlamak nasıl? Veya sadece eğik çizgi kodlamayan bir şey kullanın?

+4

"#" olmadan denediniz mi? – Blackhole

+1

Benim durumumda, $ locationProvider.html5Mode (true); –

+0

@LarissaLeite html5Dosyasını Kaldırma (true), URL'lerinizi # veya #/- ile yazacak/# yerine/# sorunu giderdim. – Spade

cevap

2

Burada herhangi bir şeyi kodlamalısınız. Sadece

app.config(function ($routeProvider) { 
    $routeProvider 
    .when('/home', {templateUrl: 'home.html', controller: 'HomeCtrl'}) 
    .when('/base/:path*', {templateUrl: 'path.html', controller: 'pathCtrl'}) 
    .otherwise({redirectTo: '/home'}); 
}); 

$locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
13

nedeniyle aa077e8 için html5Mode aşağıda belirtildiği gibi yolunuzun Param içinde * ekleyip etkinleştirmek $ konumu karma-bang URL'ler için kullanılan varsayılan karma-öneki için boş dize ('') olarak değiştirildi Patlama ('!').

Bunu denemelisiniz.

index.html

<li class="active"><a href="#/">Home</a></li> 
<li><a href="#/about">About</a></li> 

angular.module('appRoutes',['ngRoute']) 
.config(function($routeProvider, $locationProvider){ 

    $locationProvider.hashPrefix(''); 

    $routeProvider 
     .when('/',{ 
      templateUrl:'app/views/pages/home.html' 
     }) 
     .when('/about',{ 
      templateUrl:'app/views/pages/about.html' 
     }); 
}); 
+0

Teşekkürler! Bu iyi çalışıyor.OP bu cevabı kabul etmiş olmalıydı. – cezar

7

iki çözüm vardır app.js:

önerilmez: ekle! Bağlantı noktalarınızda: varsayılan karma değeri "" ile "!" arasında değişmiştir. açısal olarak ve muhtemelen değişmeyeceği için "#!" ekleme alışkanlığınız olabilir. "#" yerine bağlantı etiketlerinizde.

Önerilen: $ locationProvider:

Kullanım

$ location.hashPrefix ("") karma patlamayla olarak boş bir dize kullanmak için modül config

sadece eski günlerdeki gibi !!

+0

'! #' Eklendiğinde artık kullanılmıyor mu? Ben herhangi bir karma veya patlama olmadan standart html '/ my-url' kullanıyorum ve 1.6.4 (_html5 mode enabled_) ile çalışıyor – aliopi