所以我正在开发一个中型 Rails 应用程序,我正在尝试学习 Angular 并将其添加到该应用程序中。我看过一些教程,似乎获取初始数据和渲染初始 View 的最常见方法是在 Controller 构造函数/初始化中发出 get 请求,如下所示
phonecatControllers.controller('PhoneListCtrl', ['$scope', 'Phone', function($scope, Phone) {
$scope.phones = Phone.query();
$scope.orderProp = 'age';
}]);
var phonecatServices = angular.module('phonecatServices', ['ngResource']);
phonecatServices.factory('Phone', ['$resource',
function($resource){
return $resource('phones/:phoneId.json', {}, {
query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
});
}]);
因此,其工作方式是浏览器发出初始请求并加载 javascript/Angular,然后发出第二个请求以获取数据,一旦收到数据,就会呈现页面。
我最初的想法是渲染初始页面 View 服务器端,但经过谷歌搜索后,这似乎不是一种流行或好的方法(必须在客户端和服务器上复制大量模板/逻辑? )
我的第二个想法是在 json/javascript 中渲染/存储 Rails 端的初始数据,并让 Angular 从那里获取初始数据,而不是对数据发出 Ajax 请求。初始化之后,后续请求可以发出 ajax 请求,但这可以避免一开始的往返请求。有其他人尝试过这个吗?我应该注意这种方法有什么问题吗?
最佳答案
看来我的想法其实很常见。请参阅此处的链接:
How to add initial data to angularjs app from rendered html
https://robots.thoughtbot.com/preload-resource-data-into-angularjs
关于javascript - 使用 Rails 后端在 Angular 中渲染初始 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575312/