2012-06-22 6 views
6

Con angularjs, solemos usar HTML simple para escribir vistas. Ahora tengo una pregunta: ¿cómo puedo mostrar u ocultar algunos botones dependiendo de los derechos del usuario?¿Cómo puedo mostrar u ocultar algunos botones depende de los derechos del usuario, en angularjs?

Por ejemplo, la página actual muestra un artículo. Si el usuario actual es el autor, el artículo o el administrador, se mostrará el botón "Eliminar".

Pero como la vista es HTML simple, ¿cómo puedo controlarlo?

Puedo publicar una solicitud para pasar algunos datos (por ejemplo, identificación de usuario actual, ID de artículo) al servidor para verificar, pero si hay muchos botones, necesito solicitar muchas veces, lo que no es efectivo.

¿Hay alguna forma mejor de hacerlo?

Respuesta

9

Puede usar el ngShow directive. Puse juntos a little demo, pero el bit importante es simplemente:

<button ng-show="user.id==post.postedby">Delete</button> 
+1

Muy buen ejemplo, gracias! – Freewind

+0

@Freewind: ¡Pensé que estabas buscando la solución más elegante para verificar los derechos del usuario! Como en, si el usuario está conectado, esta información estaría en el servidor (¡no en el cliente!), Así que en realidad estaba buscando la solución más elegante para esto. ¿Existe alguna solución que no controle esto cada vez en el servidor? – ganaraj

+0

@ganaraj, No estoy seguro si entiendo el problema. La información sobre autenticación y autorización también puede existir en el lado del cliente. El servidor tiene la última palabra, por supuesto (el servidor verificará los permisos cuando el usuario solicite una eliminación), pero el cliente aún puede saber quién es el usuario actual y qué permisos tienen para reflejar eso en la interfaz de usuario. – Supr

Cuestiones relacionadas