使用angularjs更改rails中的页面的最佳做法是什么,这样就不会刷新? (我将在切换页面上使用fadein动画)。
除此之外,如果我想在Angularjs中保留数据库查询逻辑,那么有没有办法为Angularjs读取Rails url参数(foo.com/:arg)?
答案 0 :(得分:1)
如果您正在使用要转换为Angular的现有Rails应用程序,则可能无法从Rails中保留大量模板/视图代码。相反,通过保留服务器端API并静态地为Angular应用程序提供服务来开始清理。如果您从一个干净的rails应用程序开始,请记住,Rails的工作基本上是提供JSON / XML API并静态地提供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: '/'
});
});
然后在主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