Javascript rails中的Angularjs:在不重新加载的情况下更改页面?

Javascript rails中的Angularjs:在不重新加载的情况下更改页面?,javascript,ruby-on-rails,angularjs,Javascript,Ruby On Rails,Angularjs,使用angularjs在rails中更改页面以使其不刷新的最佳实践是什么?(我将在切换的页面上使用fadein动画) 除此之外,如果我想在Angularjs中保留数据库查询逻辑,那么有没有一种方法可以读取Angularjs的Rails url参数(foo.com/:arg)?如果您使用的是要转换为Angularjs的现有Rails应用程序,您可能无法从Rails中保留大量模板/视图代码。相反,从保持服务器端API开始,静态地为Angular应用程序提供服务。如果您从一个干净的rails应用程序开

使用angularjs在rails中更改页面以使其不刷新的最佳实践是什么?(我将在切换的页面上使用fadein动画)


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

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

要在Angular中更改视图而不重新加载页面,您需要与ng view配合使用$routeProvider。使用相应的视图模板注册应用程序中的每个路由:

angular.module('user-manager', [])
    .config(function($routeProvider) {
        $routeProvider
            .when('/', {
                templateUrl: 'views/main.html'
            })
            .when('/user/:id', {
                templateUrl: 'views/user.html',
                controller: 'UserCtrl'
            })
            .otherwise({
                redirectTo: '/'
           });
});
然后在main index.html中的某个位置声明ng视图:

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

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


ng视图将替换为路由中的相关模板。有关更多详细信息和更完整的示例,请参阅:.$route

使用路由器,使用资源,阅读文档我建议不要在客户端代码中保留查询逻辑。太容易hack@FooL,谢谢,所以我想我走错了路了…@傻瓜我不明白你的评论:即使你能读到js在这里和那里挑选信息,只要服务器规则,这不是一个错误problem@apneadiving没错。您可以从服务器获得所需数据的表示,但不能获得将发送到数据库的定义SQL/noSQL语句。只是练习安全编码。。