sirve que para entre datos controladores comunicacion compartir javascript angularjs angularjs-scope javascriptmvc

javascript - entre - scope para que sirve



AngularJS: ¿Lugar correcto para el proveedor de menú global, servicio o rootScope? (1)

Soy nuevo en AngularJS, y dado que es bastante complejo y el enfoque es nuevo para mí, estoy un poco confundido.

Soy de fondo "clásico" (lenguajes de plantilla del lado del servidor [como Yii, django, Smarty] + algo de jQuery para hacer las cosas un poco dinámicas).

Digamos que tengo una barra de menú (Bootstrap NavBar, o cualquier otra cosa) - un elemento que vive fuera del contenido de la página principal, como este:

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

Ahora me gustaría que el menú sea un poco dinámico, es decir, agregar o eliminar algunos elementos del menú dentro del controlador. Usando los frameworks del lado del servidor y sus sistemas de plantillas, por ejemplo Yii - Simplemente tendría una clase BaseController con $menuItems variable, y la renderizaría cada vez en el menuBar , mientras que todos los controladores heredarían de BaseController para que pudieran modificar los elementos.

Además, necesito una función que maneje el campo de searchForm ubicado dentro de la barra de menú. ¿Dónde debería vivir?

¿Qué es Angular way para algo como esto? Hasta ahora, he estado pensando en crear un service personalizado o ampliar $rootScope .


ACTUALIZACIÓN : Te animo a que eches un vistazo a los ng-demos y la guía de estilo de John Papa, como el segundo paso para adoptar angular.js.

Echa un vistazo a los ejemplos del equipo de angular.js publicado recientemente, para ver la aplicación completa.

Presta atención a las siguientes características que angular te da

  • Directivas ngView , ngInclude

  • templateUrl propiedad de la directiva

  • ''='', ''&'', ''@'' enlaces de alcance en directivas

Creo que va a ser un buen enfoque tener la combinación de un servicio y una directiva para renderizar el menú de la manera que lo describió.