Возможна ли совместная работа Asp.Net MVC + Breeze + Angular?

Я работаю над новым проектом на основе Asp.Net MVC + Breeze + Angular.

Я хотел использовать предварительно созданные представления и контроллеры MVC для учетной записи (вход в систему, выход из системы, восстановление пароля и т. д.). Кроме того, я хочу добавить мини-страницы SPA с помощью Breeze и Angular.

Является ли это возможным?

Breeze реализует свой файл конфигурации маршрута, который переопределяет существующий маршрут приложения mvc, поэтому я не могу использовать их оба, либо использовать маршрутизацию breeze или маршрутизацию mvc.


person Dabiel Kabuto    schedule 07.11.2014    source источник
comment
На самом деле вы можете использовать все маршруты вместе. Просто бардак. Я склонен использовать Angular на своих сайтах MVC, чтобы получить мини-SP. Это прекрасно работает! Зачем вам нужно использовать Breeze и Angular?   -  person Callum Linington    schedule 07.11.2014
comment
Я начинаю с Breeze, я мало что о нем знаю, но кажется, что это хорошее связующее звено между проектами Asp.Net и angular, обеспечивающее богатое управление данными для клиентов Javascript (клиент LINQ, кеш и т. д.)   -  person Dabiel Kabuto    schedule 07.11.2014
comment
Да, кажется, хорошая библиотека, я действительно не использовал ее раньше. Вы можете определенно иметь маршрутизацию с angular и mvc. Они происходят в разных местах, MVC имеет дело с маршрутизацией на стороне сервера, а Angular — с маршрутизацией на стороне клиента.   -  person Callum Linington    schedule 07.11.2014


Ответы (1)


Итак, для начала. Вот Совет Я создал, чтобы помочь со всеми этими проблемами скриптов Angular.

На своей странице вы можете сделать это в скриптах внизу, чтобы добавить угловой модуль на свою страницу:

@section Scripts {

    <script>
        angular.module('miniSpa', ['ngRoute']).config(['$routeProvider', function ($routeProvider) {
            $routeProvider.when('/#main', { controller: "spaController", templateUrl: '/Partials/Home/Main.html' });

            $routeProvider.otherwise({ redirectTo: '/#main' });
            }])
            .controller('spaController', ['$scope', spaController]);

        function spaController($scope) {
            $scope.hello = "Hello";
        }
    </script>
}

Если вам просто нужен Angular для привязки данных, что я делаю довольно часто:

<div ng-app="page">  
    <div ng-controller="pageController">
        <h1>{{ hello }}</h1>
    </div>
</div>

@section Scripts {
    <script>
         angular.module('page', [])
             .controller('pageController', ['$scope', pageController]);

         function pageController($scope) {
              $scope.hello = "hello";
         }
    </script>
}
person Callum Linington    schedule 07.11.2014