2013-05-14 30 views
5

Tôi đang phát triển một ứng dụng góc cạnh và có câu hỏi nhanh. Khi một 'ứng dụng trang' góc cạnh 'chiếm' các ánh xạ URL, vì vậy tôi có thể điều hướng từ "/" -> '/ about' v.v ... và tất cả điều hướng xảy ra trên máy khách trong một trang.Điều hướng "Bên ngoài" để sửa url angular.js (liên kết trực tiếp/làm mới/v.v.)

Điều tôi đang cố gắng tìm ra là cách truy cập đúng trang trên máy khách khi điều hướng ứng dụng khách bị bỏ qua. Ví dụ: thay vì truy cập http://www.myapp.com, sau đó nhấp vào 'about' và chuyển đến 'http://www.myapp.com/about', làm cách nào để xử lý người dùng truy cập trực tiếp vào 'http://www.myapp.com/about', tôi rõ ràng có thể chuyển hướng họ đến "/" nhưng tôi vẫn muốn giống như họ 'kết thúc' tại '/ về' như những gì họ mong đợi. Tương tự, có cùng một vấn đề về làm mới. Nếu tôi đang ngồi ở '/ about', và làm một trình duyệt làm mới, yêu cầu đó sẽ '/ about' trên máy chủ và bỏ qua ứng dụng, vì vậy một lần nữa, tôi cần đoán, tải lại ứng dụng ở gốc, nhưng vẫn làm cho nó trở lại/về.

Cảm ơn trước.

EDIT: Cảm ơn bạn đã có câu trả lời, tôi nghĩ có lẽ tôi chưa đặt câu hỏi rõ ràng. Tôi hiểu định tuyến, v.v. trong ứng dụng góc của tôi. Vì vậy, thiết lập nó để nói tải 'partials/about.html' khi một '/ về' href được nhấp vào. Vấn đề của tôi là giả định rằng điều đó đã hoạt động, người dùng truy cập trực tiếp vào 'www.myapp.com/about'. Ứng dụng góc 'sống' trên thư mục gốc. Vì vậy, có lẽ, máy chủ sẽ thực hiện chuyển hướng đến '/'. Điều đó tải ứng dụng nhưng không 'đặt' góc tới tuyến đường mà người dùng mong đợi. Vì vậy, câu hỏi, là có someway để nói với các ứng dụng "Khi bạn tải, đi đến/về" có lẽ dựa trên referrer hoặc một cái gì đó.

Trả lời

1

Bạn đang sử dụng máy chủ nào?

Bạn có thể tạo tuyến đường toàn tuyến trong bộ định tuyến của mình. Giống như match '*' => 'Angular#App' (Rails)

hoặc (thể hiện)

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

Tôi đang sử dụng node.js thực sự để nguội. Nhưng ví dụ đó có đưa người dùng quay lại đúng url không? Điều đó sẽ chỉ phục vụ trang chính cho họ đúng không? Một lần nữa, tôi cần một yêu cầu để nói '/ về' được chuyển hướng đến '/' và bằng cách nào đó nói với Angular rằng người dùng là 'thực sự' tại '/ about' –

+1

Ok, tôi đã có một khoảnh khắc 'duh'. Tôi đã đọc các công cụ dịch vụ vị trí, vv nhưng nó đã không bấm cho đến bây giờ, cũng như câu trả lời của bạn. Có tất cả url hoặc ít nhất là tất cả url của ứng dụng (tôi có một/api root của các dịch vụ an toàn) chỉ phục vụ trang góc gốc cho phép góc để 'tìm ra' nơi nó được cho là khi tải. Cảm ơn! –

+0

Vui vì nó đã giúp bạn :). – Ven

0

Tôi nghĩ rằng bạn đang nói về mặt định tuyến khách hàng trong góc - không phía máy chủ. Dù sao, câu trả lời của tôi là giả định điều này.

Góc có chứa dịch vụ định tuyến cho phép bạn xác định các tuyến đường phía máy khách ánh xạ tới url đến sau url máy chủ cơ sở. Dưới đây là một ví dụ về cách bạn có thể thiết lập nó:

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

Miễn là bạn có thiết lập partials ở phía máy chủ và các thiết lập bộ điều khiển quá, khi người dùng điều hướng vào từng url, bộ điều khiển chính xác và một phần sẽ kéo lên và bạn có thể chọn làm bất cứ điều gì bạn cần trong mỗi bộ điều khiển đó.

Có các tùy chọn khác mà bạn cũng có thể sử dụng, tôi chỉ sử dụng các tuyến đường theo cách này. Kiểm tra AngularJS documentation để biết thêm thông tin

Các vấn đề liên quan