2013-06-03 40 views
8

Tôi mới đến AngularJS, và - vì nó khá phức tạp và cách tiếp cận mới mẻ đối với tôi, tôi hơi bối rối.AngularJS: Đúng nơi cho nhà cung cấp dịch vụ toàn cầu, dịch vụ hoặc rootScope?

Tôi từ nền "cổ điển" (ngôn ngữ mẫu phía máy chủ [như Yii, django, Smarty] + một số jQuery để làm cho mọi thứ trở nên năng động hơn).

Hãy nói rằng tôi có một thanh menu (Bootstrap NavBar, hoặc bất cứ điều gì khác) - một yếu tố mà sống ngoài của trang chính nội dung, như thế này:

<body> 
    <div id="menubar"> 
    ... <!-- menu content --> 
    </div> 
    <div class="container"> 
    <div ng-view></div> 
    </div> 
</body> 

Bây giờ tôi muốn để làm cho menu có chút năng động, tức là thêm hoặc xóa một số mục menu bên trong bộ điều khiển. Sử dụng các khung bên máy chủ & các hệ thống khuôn mẫu của chúng, ví dụ Yii - tôi chỉ đơn giản có một lớp BaseController với biến $menuItems và hiển thị mỗi lần trong menuBar, trong khi tất cả các bộ điều khiển sẽ kế thừa từ BaseController để chúng có thể sửa đổi các mục.

Ngoài ra, tôi cần một hàm xử lý searchForm nằm bên trong thanh trình đơn. Nó nên sống ở đâu?

Cách góc cho thứ gì đó như thế này? Cho đến nay tôi đã nghĩ đến việc tạo tùy chỉnh service hoặc mở rộng $rootScope.

+1

Bạn đã xem ứng dụng mẫu chưa? https://github.com/IgorMinar/foodme – vittore

+0

@vittore cảm ơn bạn, tôi không biết điều này. Tôi đã không biết tôi có thể sử dụng ng-controller cùng với ng-view :) Kết hợp nó với một số dịch vụ chia sẻ nên làm một thủ thuật. Làm cho nó một trả lời thay vì bình luận và tôi sẽ đánh dấu nó như là câu trả lời. – migajek

+0

có thể trùng lặp của [truyền thông toàn cầu trong mô-đun góc: xe buýt sự kiện hoặc mô hình/dịch vụ hòa giải] (http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-mediator- dịch vụ mẫu) –

Trả lời

9

CẬP NHẬT: Tôi khuyến khích bạn xem qua số John Papa's ng-demoesstyle-guide như bước thứ hai trong việc áp dụng angular.js.

Xem các ví dụ về nhóm angular.js được đăng gần đây, để hiển thị toàn bộ ứng dụng.

Chú ý đến các tính năng sau góc mang đến cho bạn

I belive nó sẽ là một cách tiếp cận tốt để có sự kết hợp của một dịch vụ và một chỉ thị để hiển thị menu theo cách bạn mô tả nó.

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