2013-05-14 16 views
5

Ben açısal bir uygulama geliştiriyorum ve hızlı bir soru var. 'Tek sayfalık bir uygulama' köşeli 'URL eşlemelerini' alır, bu yüzden "/" -> '/ about' vb. Arasında gezinebilir ve tüm seyler tek bir sayfada istemcide gerçekleşebilir."Harici" gezinme angular.js'yi düzeltmek için url (doğrudan bağlantı/yenileme/etc)

İstemcinin gezinmesini atladığında istemcide doğru sayfaya nasıl ulaşacağım, anlamaya çalışıyorum. Örneğin, http://www.myapp.com'a gidip, 'about' tıklayıp 'http://www.myapp.com/about' adresine gitmek yerine, doğrudan 'http://www.myapp.com/about' adresine giden kullanıcıyı nasıl ele alabilirim, açıkçası "/" ye yönlendirebilirim ama yine de '/ about' olarak bekledikleri gibi bekledikleri gibi. Benzer şekilde, yenileme konusunda da aynı sorun var. '/ About' konumunda oturuyorum ve bir tarayıcı yenilemesi yaparsam, bu istek sunucuda '/ about' olacak ve uygulamayı atlayarak, yeniden tahmin etmem gerek, uygulamayı root'unda yeniden yükle, ancak hala geri/tekrar yapmak.

Teşekkürler.

DÜZENLEME: Yanıtlar için teşekkürler, belki soruyu açık bir şekilde sormadım. Açısal uygulamasında yönlendirme vb. Yani '/ about' href tıklandığında 'partials/about.html' yükünü yüklemek için ayarlama. Sorunum, zaten çalışıyor olduğunu varsayarak, bir kullanıcının doğrudan "www.myapp.com/about" adresine gitmesidir. Kök üzerinde açısal uygulama 'yaşıyor'. Muhtemelen, sunucu '/' için bir yönlendirme yapardı. Bu, uygulamayı yükler ancak kullanıcının beklediği rotaya açısal olarak ayarlanmaz. Yani, soru "Yüklediğinizde,/hakkında gidin" belki de yönlendiren ya da bir şey dayalı uygulamayı söylemek için bir yol var.

cevap

1

Hangi sunucuyu kullanıyorsunuz?

Yönlendiricinizde bir tümünü yakalama rotası oluşturabilirsiniz. değil sunucu tarafında -

veya

app.use(function (req, res) { 
    res.writeHeader(200, {'Content-Type': 'text/html'}); 
    res.end(indexFileContent); 
}); 
+0

Gerçekten de node.js'yi kullanıyorum, bu da harika. Ancak bu örnek kullanıcıyı doğru URL'ye geri döndürüyor mu? Bu sadece ana sayfaya geri dönecek mi? Yine, kullanıcı –

+1

Tamam, oldu '/ hakkında' a 'Yaa' an 'gerçekten' olduğunu Açısal anlatmak nasılsa '/ hakkında' '/' yönlendirilmek için demek ve bir istek gerekir. Konum servisini okudum, vb. Ama cevabınız kadar tıklanmadı. Tüm URL'lerin veya en azından tüm 'uygulama' url'lerine sahip olmak (yalnızca bir hizmetin kökeni/kökeni), sadece kök açısal sayfa, açılışı olduğunda olması gerektiği yerde açısal olarak 'anlamaya' olanak tanır. Teşekkürler! –

+0

Size yardımcı olduğuna sevindim :). – Ven

0

Sana Açısal istemci tarafı yönlendirme bahsediyoruz düşünüyorum (ekspres) match '*' => 'Angular#App' (Rails) gibi. Her neyse, cevabım bunu varsayıyor.

Köşeli, temel sunucu URL'sinden sonra gelen URL'leri eşleyen istemci tarafındaki yolları tanımlamanızı sağlayan bir yönlendirme hizmeti içerir. Burada kurmak nasıl bir örnektir: Bir kullanıcı her bir URL'ye gittiğinde, siz de sunucu tarafında Partials kurulum ve kontrolörler kurulum var Sağlanan

angular.module('myApp',[]) 
.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
     .when('/', {templateUrl: '/home-partial', controller: 'HomeCtrl'}) 
     .when('/about', {templateUrl: '/about-partial', controller: 'AboutCtrl'}) 
     .when('/contact', {templateUrl: '/contact-partial', controller: 'ContactCtrl'}) 
     .otherwise({redirectTo: '/'}); 
    }]) 

doğru denetleyici ve kısmi olacak çekti ve bu kontrol cihazlarının her birinde ne gerekiyorsa onu yapmayı seçebilirsiniz.

Ayrıca kullanabileceğiniz başka seçenekler de var, sadece yolları bu şekilde kullanıyorum. Daha fazla bilgi için AngularJS documentation'a göz atın.

İlgili konular