Angularjs в рельсах: изменить страницу без перезагрузки?

0

Какова наилучшая практика смены страниц в рельсах с помощью angularjs, чтобы обновления не обновлялись? (Я буду использовать анимацию fadein на странице с переключением).

В дополнение к этому, если я хочу сохранить логику запросов базы данных в Angularjs, так есть ли способ прочитать Rails url аргумент (foo.com/:arg) для Angularjs?

  • 0
    использовать роутер, использовать ресурс, читать документ
  • 0
    я бы порекомендовал не хранить логику запросов в коде на стороне клиента. слишком легко взломать
Показать ещё 3 комментария

1 ответ

1
Лучший ответ

Если вы работаете с существующим Rails-приложением, которое вы хотите преобразовать в Angular, вам вряд ли удастся сохранить много кода шаблона/представления из Rails. Вместо этого начните очистку, сохранив API-интерфейсы на стороне сервера и статически подавайте свое угловое приложение. Если вы начинаете использовать приложение с чистыми рельсами, имейте в виду, что в основном это будет задача Rails для предоставления JSON/XML API и статического обслуживания углового приложения.

Чтобы изменить виды в Angular без перезагрузки страницы, вы хотите использовать $ routeProvider в координации с ng-view. Зарегистрируйте каждый из маршрутов в своем приложении с соответствующим шаблоном представления:

angular.module('user-manager', [])
    .config(function($routeProvider) {
        $routeProvider
            .when('/', {
                templateUrl: 'views/main.html'
            })
            .when('/user/:id', {
                templateUrl: 'views/user.html',
                controller: 'UserCtrl'
            })
            .otherwise({
                redirectTo: '/'
           });
});

А затем объявите ng-view где-нибудь в вашем основном index.html:

<body ng-app="user-manager">

    <!-- Main view -->
    <div ng-view></div>
</body>

Ng-view будет заменен соответствующим шаблоном с ваших маршрутов. Более подробную информацию и более полный пример см. По адресу: http://docs.angularjs.org/api/ngRoute. $ Route

Ещё вопросы

Сообщество Overcoder
Наверх
Меню