2013-01-14 24 views
10

Hiện tại tôi đang kết hợp một ứng dụng truyền thống với một số phần động được viết bằng AngularJS. Tôi muốn cung cấp một số cấu hình từ máy chủ của tôi cho mô-đun của mình. Trong trường hợp này, tôi muốn cấu hình URL 'cơ sở' của ứng dụng. Tất cả các mẫu có thể được tìm thấy tại một địa điểm cụ thể và vị trí này được xác định bởi máy chủ.Cách cung cấp cấu hình cho mô-đun AngularJS?

Vì vậy, tôi đã cố gắng một cái gì đó như thế này:

angularForm.config(
function($routeProvider, TemplateLocator) { 
    $routeProvider.when('/', { 
     controller : TestController, 
     templateUrl : TemplateLocator.getTemplate('FormOuterContainer') 
}); 
}); 

Tại server:

<script type="text/javascript"> 
angular.module('BoekingsModule.config', []).provider('TemplateLocator', function() { 
     this.$get = function() { 
      return // something 
     } 

     this.getTemplate = function(name) { return 'location...'; } 
    }); 
</script> 

Tuy nhiên, tôi không chắc chắn đây là một cách đúng đắn. Vì vậy, trong ngắn hạn: làm thế nào tôi có thể cung cấp một số (bên ngoài) cấu hình cho một mô-đun mà không cần phải thay đổi mô-đun chính nó?

+0

Bị mắc kẹt với cùng một vấn đề. Bạn có thể tìm ra điều này không? –

Trả lời

0

Thật đáng tiếc là đã lâu rồi. Tôi hoàn toàn quên mất bài đăng này.

Vì vậy, cuối cùng, tôi quyết định sử dụng cách tiếp cận khác tốt hơn là tốt hơn. Giống như iwein cho biết, kết hợp SPA với dựng hình phía máy chủ làm cho ứng dụng phức tạp hơn rất nhiều. Do đó tôi đã trích xuất phần SPA thành một ứng dụng riêng biệt mà lần lượt được tham chiếu từ (trong trường hợp của tôi) là JSP.

Khi mô-đun của tôi cần một số cấu hình bổ sung, nó nhận được nó bằng cách sử dụng API REST. Bằng cách này, phần SPA của ứng dụng được tách hoàn toàn khỏi phần được hiển thị phía máy chủ.

4

Có một vài điều bạn có thể làm

  1. Render các vị trí trong js trên máy chủ.

    Pro: chưa yêu cầu -> hiệu suất tốt hơn (thường)

    Nhược điểm:

    • kết hợp phía máy chủ rendering với một SPA làm cho hệ thống phức tạp hơn, dẫn đến chi phí bảo dưỡng cao hơn.
    • khó nén đúng hơn tệp js của bạn nếu bạn muốn kết hợp trong hiển thị phía máy chủ, nhúng js trong html cũng xấu xí.
  2. Trích xuất vị trí mẫu thành service.

    Từ dịch vụ này, bạn có thể sử dụng $resource để tìm nạp dữ liệu từ máy chủ ở định dạng json. Điều này giúp mọi thứ trở nên đơn giản hơn, nhưng nó cũng có thể tăng tải của máy chủ web của bạn.

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