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
.
Bạn đã xem ứng dụng mẫu chưa? https://github.com/IgorMinar/foodme – vittore
@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
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) –