Контроллеры AngularJS когда-либо используют более одного метода действия / настройки?

Большинство примеров контроллеров AngularJS, которые я видел, обычно имеют один метод действия, который связывает все для представления. С другой стороны, в контроллерах, которые используют шаблон MVC, а не MVW AngularJS, обычно есть несколько методов действия на контроллер, но это не относится к AngularJS.

Конечно, можно подключить к $ scope (или некоторому другому объекту) любое количество методов, которые выполняют поведение, но все же это похоже на методы действия MVC, так как они автоматически не принимают прямой ввод маршрута.

Я заинтересован, потому что я пытаюсь преобразовать существующее приложение Asp.net MVC в угловое, и я пытаюсь решить лучшую организационную разбивку для контроллеров.

Верны ли мои различные предположения?

Контроллеры AngularJS когда-либо используют более одного метода действия / настройки?

Угловые контроллеры когда-либо разбиты на отдельные действия? Или угловой контроллер имеет более или менее одно действие, хотя маршрутизация и представление могут отличаться?


Обновление:
Требуемый пример - контроллер AngularJS:

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

Пример контроллера Asp.Net 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});
        }
    }

Пример контроллера 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

Если вы посмотрите на эти три примера, AngularJS имеет только один метод конструктора / настройки, в то время как в примере Asp.net MVC есть конструктор и два метода действий. В примере Ruby of rails даже нет видимого конструктора, просто методы действий. Пример Asp.net MVC (или пример Ruby on Rails) аналогичен тому, сколько действий работает в других реализациях MVC. В AngularJS я предполагаю, что есть только один метод действия / конструктора, в который можно было бы добавить любое дополнительное поведение. С другой стороны, пример MVC Asp.net имеет как конструктор, так и два метода действия, которые могут быть направлены по-разному. похож на единый компрессор AngularJS / действие.

1 ответ

Решение

Из того, что я могу сказать, контроллеры AngularJS не имеют традиционных методов действий, таких как контроллеры MVC. Вместо этого все, что может сделать контроллер, должно быть определено в методе с одним конструктором или настроено с использованием маршрутизации в конфигурации приложения. Если вам нужна установка, отличная от конструктора, то, вероятно, это хорошее место для использования нового контроллера.

Позже я спросил в угловой комнате IRC:

Угловые контроллеры на самом деле не имеют методов действия, как в других реализациях MVC, таких как Ruby on Rails или Asp.net MVC? право?

на что вафля ответил:

ничего не требуется или дано вам в принципе

а также

это просто базовая структура без "базовых" объектов для расширения или интерфейса для реализации

Робдубя также упомянул:

если вы не хотите, чтобы получить все будущие сексуальные https://gist.github.com/robwormald/bc87cb187e8f96c4e5f0

Другие вопросы по тегам