我一直被困在一個我無法看透的問題上一天。
我有一個users.js.coffee文件下面的代碼:
app = angular.module("app", ["ngResource"])
app.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) ->
$locationProvider.html5Mode(true)
$routeProvider.when('/users/:id', {templateUrl: '/users/:id.json', controller: UserCtrl})
$routeProvider.when('/users/:id/videos', {templateUrl: '/users/:id/videos.json', controller: UserCtrl})
]
app.factory "User", ["$resource", ($resource) ->
$resource("https://stackoverflow.com/users/:id", {id: "@id"}, {
show: {method: "GET"},
videos: {method: "GET", isArray:true}
})
]
@UserCtrl = ["$scope", "$location", "$route", "http", "$routeParams", "User", ($scope, $location, $route, $http, $routeParams, User) ->
console.log($location)//LocationUrl {$$parse: function, $$compose: function, $$rewriteAppUrl: function, $$protocol: "http", $$host: "localhost"…}
console.log($route)//Object {routes: Object, reload: function}
console.log($routeParams)//Object {}
]
爲什麼$ routeParams是一個空的對象?如果我在視圖中調用$ route.current.params,它將顯示適當的參數。但不在控制器中。更重要的是,我不能在控制器中調用$ route.current.params,因爲「當前」還沒有定義。
這與您的問題無關,但我不認爲您在使用'respond_with'時可以使用'to_json'。您必須提供一個對象,並且您的控制器將根據請求的格式調用適當的響應者。 – 2013-03-14 09:05:57
我認爲你一般是對的,除非我需要像@ user.to_json(包括:視頻)那樣抓取關聯。我只是在那裏明確說明,直到我能弄清楚爲什麼我沒有得到適當的迴應。 – jflores 2013-03-14 13:29:06
在json響應中包含關聯的首選方法是在模型中重寫'as_json'。至於你的問題,你可以設置你的瀏覽器記錄xhr請求(鉻做到這一點),併發布在這裏來回發生什麼? – 2013-03-14 14:52:19