varios servicios example entre diferencia controladores comunicacion angularjs model-view-controller controller controller-action mvw

servicios - ¿Los controladores AngularJS alguna vez usan más de un método de acción/configuración?



servicios angularjs (1)

La mayoría de los ejemplos de controladores AngularJS que he visto, generalmente tienen un único método de acción que conecta todo para la vista. Por otro lado, en los controladores que usan el patrón MVC, en lugar del MVW de AngularJS, generalmente hay varios métodos de acción por controlador, pero este no parece ser el caso con AngularJS.

Concedido, uno puede conectar en el $ scope (u otro objeto) cualquier cantidad de métodos que ejecuten el comportamiento, sin embargo, esto parece ser lo mismo que los métodos de acción de MVC, ya que no aceptan automáticamente la entrada de ruta directa.

Estoy interesado porque estoy tratando de convertir una aplicación Asp.net MVC existente en angular y estoy tratando de decidir el mejor desglose organizacional para los controladores.

¿Son correctas mis diversas suposiciones?

¿Los controladores AngularJS alguna vez usan más de un método de acción / configuración?

¿Los controladores angulares alguna vez se dividen en acciones individuales? ¿O tiene un controlador angular más o menos una acción, aunque el enrutamiento y la vista pueden ser diferentes?

Actualización :
Ejemplo solicitado - Controlador AngularJS:

myApp.controller(''DoubleController'', [''$scope'', function($scope) { $scope.double = function(value) { return value * 2; }; }]);

Ejemplo de Asp.Net Controller MVC:

public class CardController : Controller { private readonly IService _service; public CardController(IService service) { _service = service; } public ActionResult Index(Guid gameId) { var model = _service.GenerateCardBuyDisplayModel(gameId); return View(model); } public ActionResult BuyCards(ExecuteBuyModel input) { _service.ExecuteBuy(input.GameId, input.CardsToBuy); return RedirectToAction("Index", "Game", new { id = input.GameId}); } }

Ejemplo del controlador Ruby on Rails:

class ClientsController < ApplicationController # This action uses query string parameters because it gets run # by an HTTP GET request, but this does not make any difference # to the way in which the parameters are accessed. The URL for # this action would look like this in order to list activated # clients: /clients?status=activated def index if params[:status] == "activated" @clients = Client.activated else @clients = Client.inactivated end end # This action uses POST parameters. They are most likely coming # from an HTML form which the user has submitted. The URL for # this RESTful request will be "/clients", and the data will be # sent as part of the request body. def create @client = Client.new(params[:client]) if @client.save redirect_to @client else # This line overrides the default rendering behavior, which # would have been to render the "create" view. render "new" end end end

Si observa estos tres ejemplos, AngularJS tiene solo un único método de constructor / instalación, mientras que el ejemplo Asp.net MVC tiene un constructor y dos métodos de acción. El ejemplo de Ruby of rails ni siquiera tiene un constructor visible, simplemente métodos de acción. El ejemplo de MVC de Asp.net (o el ejemplo de Ruby on Rails) es similar a la cantidad de acciones que funcionan en otras implementaciones de MVC. En AngularJS supongo que solo hay un método de acción / constructor, en el que en uno se adjuntaría cualquier comportamiento adicional. Por otro lado, el ejemplo Asp.net MVC tiene tanto un constructor como dos métodos de acción que pueden enrutarse de diferentes maneras. similar al único contrustor / acción AngularJS.


Por lo que puedo decir, los controladores AngularJS no tienen métodos de acción tradicionales, como los controladores MVC. En cambio, cualquier cosa que un controlador pueda hacer debe definirse en el método del constructor único o configurarse utilizando el enrutamiento en la configuración de la aplicación. Si necesita una configuración que sea diferente del constructor, probablemente sea un buen lugar para usar un nuevo controlador.

Más tarde pregunté en la sala de chat IRC angular:

Los controladores angulares en realidad no tienen métodos de acción como lo hacen en otras implementaciones de MVC como Ruby on Rails o Asp.net MVC. ¿derecho?

a lo que wafflejock respondió:

no se requiere nada o se te da básicamente

y

es solo la estructura barebones sin objetos "base" para extender desde o interfaz para implementar

robdubya también mencionó:

a menos que quieras obtener todo el futuro sexy https://gist.github.com/robwormald/bc87cb187e8f96c4e5f0