2013-02-23 30 views
14

Tôi muốn người dùng không thể xem trực tiếp partials khi truy cập url của họ trong trình duyệt. Ví dụ: nếu chế độ xem một phần của tôi nằm ở:Angular.js - Ngăn chặn truy cập trực tiếp vào một phần lượt xem

/partials/myPartial.html 

Tôi vẫn có thể truy cập trực tiếp và xem đánh dấu lẻ. Có cách nào để ngăn chặn nó và làm cho các quan điểm một phần chỉ có sẵn thông qua góc? Cảm ơn.

Trả lời

10

Vâng, không thực sự.

Vào cuối một ngày, trình duyệt cần có khả năng truy cập một phần để tải xuống. Nếu trình duyệt có thể thực hiện việc này, người dùng của bạn cũng có thể làm như vậy. Cuối cùng, bạn có thể làm cho nó khó hơn một chút khi chúng trực tiếp truy cập partials (ví dụ bằng cách cấu hình máy chủ của bạn để nó chỉ đáp ứng yêu cầu với một tiêu đề nhất định và cấu hình $http để gửi tiêu đề này cho mỗi yêu cầu XHR).

Khả năng khác là tải trước partials lên phía trước như được mô tả here và không hiển thị chúng qua HTTP ở tất cả (thực tế đây là một phương pháp hay để triển khai sản xuất).

Nếu không, khó có thể đề xuất giải pháp có ý nghĩa mà không biết vấn đề chính xác (nói theo chức năng) mà bạn đang cố giải quyết là gì.

+0

ASP.NET có cái gì gọi là ChildAction mà làm điều gì đó giống như b này ut có lẽ vì đó là ngôn ngữ phía máy chủ. Tôi hy vọng góc cạnh cũng có nó nhưng tôi có thể sống mà không có nó nên cảm ơn anyway. –

14

tôi đặt một <script> ở đầu mỗi xem một phần rằng séc nếu biến có chứa các ứng dụng mô-đun chính tồn tại, nếu không chuyển hướng đến index.html

Nếu trong app.js các appModule được định nghĩa theo cách này:

var appModule = angular.module('myApp',["ngRoute","ngResource"]);` 

Ở phía trên cùng của chèn phần:

<script type="text/javascript"> 
    if(typeof appModule === 'undefined'){ 
    document.location.href="index.html"; 
    } 
</script> 
+0

3 năm sau và đây chính xác là những gì tôi cần. Nó rất đơn giản, tôi cảm thấy bẩn bằng cách sử dụng nó. – Joseph

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