【发布时间】:2014-04-10 17:43:43
【问题描述】:
我是 angularjs/clientjs 的新手,想使用带有 angularjs 的 rails json api。经过一些研究,我编写了 ff: 代码,但是当我访问 http://localhost:3000/users 时,我得到了普通的 json。没有调用 Angularjs 来渲染视图。
如何渲染一个 angularjs 视图来格式化和显示 rails json api 返回的数据?
铁路/路线
app::Application.routes.draw do
get 'main/index' => 'main#index'
resources :users, defaults: {format: :json}
end
rails/users_controller.rb
def index
@users = User.all
end
rails/main_controller.rb
def index
# blank
end
rails/应用程序布局
..
<html ng-app='gold'>
..
<div ng-view>
<%= yield %>
</div>
..
app/assets/templates/main/index.html
app/assets/templates/users/index.html
app/assets/javascripts/main.js
var myApp = angular.module('gold', ['ngRoute', 'ngResource']);
myApp.config(function($routeProvider, $locationProvider, $httpProvider) {
console.log("in router")
$httpProvider.defaults.headers.common['X-CSRF-Token'] =
$('meta[name=csrf-token]').attr('content');
$locationProvider.html5Mode(true);
$routeProvider.
when('/users', {
templateUrl: '../assets/users/index.html',
controller: 'UsersController'
}).when('/main/index', {
templateUrl: '../assets/main/index.html',
controller: 'MainController'
}).otherwise({
redirectTo: '/'
});
});
app/assets/javascripts/services/UserService.js
myApp.factory('UserService', ['$resource', function($resource) {
console.log("in user service")
return $resource('/users/:id', {id: '@id'}, {
index: { method: 'GET', isArray: true },
create: { method: 'POST' },
show: { method: 'GET' },
update: { method: 'PUT', params: {id: '@id'} }
//delete: { method: 'DELETE', params: {id: '@id'} }
});
}]);
app/assets/javascripts/controllers/UsersController.js
myApp.controller('UsersController', ['$scope', 'UserService', function($scope, UserService) {
console.log("in user controller")
$scope.users = UserService.query();
}]);
【问题讨论】:
-
你有什么问题?
-
我不小心把它编辑掉了。我仍然认为这很明显。没有调用 Angularjs 模板。 rails 模板也不是。只是 json。
-
您在您的 routes.rb 中为 /users 指定默认格式为 json。如果您不希望出现这种情况,为什么会出现这种情况?如果您希望默认格式为 HTML,只需将其删除。否则,您应该能够将 .html 添加到 URL 的末尾。
-
我不确定我是否理解你。我希望 rails 应用程序将 json 发送到 angularjs 客户端。然后,angularjs 客户端将使用 json 数据来呈现 angular html 模板。这是角度的工作原理吗?我是新手。我以为我根本不应该使用 rails 模板,但是一些教程一直在使用 rails 模板和 angular 模板。我应该删除 rails 视图目录吗?
-
我也有类似的问题。上面的问题解决了吗?有人可以帮忙吗?
标签: ruby-on-rails json angularjs