2016-03-05 5 views
3

Я совершенно смущен относительно того, какая модель находится в угловой системе. В ASP.NET MVC, мое понимание модели есть класс, который определяет объект домена, вроде как DTO:Объяснение модели AngularJS

public class Person { 
     public string PersonName { get; set; } 
} 

Очень легкий вес. С другой стороны, моя бизнес-логика не содержится здесь, а вместо этого в репозитории, который, в свою очередь, имеет интерфейс. Контроллер запрашивает данные через интерфейс к репозиторию. Репозиторий фильтрует и извлекает данные, затем передает их контроллеру. Думаю, можно было бы утверждать, что репозиторий, интерфейс и DTO вместе составляют модель.

Основываясь на моем понимании, угловая модель, по крайней мере, в тех случаях, когда она извлекает, обрабатывает и передает данные контроллеру, будет фабрикой/службой. Это верно?

+1

Нет. Модель данных, переменные и методы в области контроллера, используемые для приведения в действие вид. Контроллер может быть подключен к сервису/фабрике для доступа к данным и методам, но эти службы не будут влиять на представление без привязки к модели контроллера (область) – charlietfl

ответ

2

В Angularjs модель представляет собой переменную $ scope. Я не знаю MVC в ASP.NET, но, увидев ваш пример, я чувствую, что в качестве сравнения можно сказать, что класс person находится внутри области $ scope.

Также из вашего вопроса, в ASP.NET, бизнес-логика, похоже, не находится в контроллере. Не уверен, какова роль контроллера в ASP.NET, но в AngularJS именно там находится бизнес-логика.

Может быть диаграмма в this AngularJS Concepts page может сделать вас более понятным.

+0

Мне нравится, что вы предоставили ссылку на угловые документы. Благодарю. Из того, что я читал в нем, контроллеры содержат бизнес-логику, но иногда эта бизнес-логика лучше абстрагируется от службы или фабрики. Кажется, вы и charlietfl согласны с тем, что $ scope содержит данные. Поэтому ваша модель действительно не может содержать бизнес-логику, которая будет существовать в ваших контроллерах и службах. Это верно? – steveareeno

+0

Что касается ASP.net MVC, контроллер запрашивает данные через службу/репозиторий, который помещает его в объект домена и передает его обратно контроллеру. Затем контроллер передает его в представление. – steveareeno

+0

Yup точно. Модель ($ scope) содержит только данные. И бизнес-логика существует в контроллерах и службах (что, я думаю, используется в контроллерах в любом случае). –

Смежные вопросы