0

使用angularjs更改rails中页面的最佳实践是什么,不会刷新?(我将在切换页面上使用淡入淡出动画)。

除此之外,如果我想在 Angularjs 中保留数据库查询逻辑,那么有没有办法为 Angularjs 读取 Rails url 参数(foo.com/:arg)?

4

1 回答 1

1

如果您正在使用想要转换为 Angular 的现有 Rails 应用程序,您可能无法保留 Rails 的大量模板/视图代码。相反,从保持服务器端 API 开始清洁并静态地为您的 Angular 应用程序提供服务。如果您从一个干净的 Rails 应用程序开始,请记住,提供 JSON/XML API 并静态地为 Angular 应用程序提供服务基本上是 Rails 的工作。

要在不重新加载页面的情况下更改 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: '/'
           });
});

然后在主 index.html 中的某处声明 ng-view:

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

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

ng-view 将被您路线中的相关模板替换。有关更多详细信息和更完整示例,请参阅:http ://docs.angularjs.org/api/ngRoute .$route

于 2013-10-19T08:40:06.947 回答