私は見ることができない問題について約1日立ち往生しています。
私は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を呼び出すと、適切なパラメータが表示されます。しかし、コントローラではありません。さらに、 "current"はまだ定義されていないので、コントローラで$ route.current.paramsを呼び出すことはできません。
これはあなたの質問とは関係ありませんが、 'respond_with'を使用すると' to_json'を使用することはできません。オブジェクトを提供する必要があり、コントローラは要求されたフォーマットに従って適切なレスポンダを呼び出します。 –
@ user.to_json(include::videos)のような関連付けをする必要がなければ、あなたは大体正しいと思います。なぜ私が適切な応答を得ていないのかを理解するまで、それを明示的にするだけです。 – jflores
jsonレスポンスに関連付けを含めるための好ましい方法は、モデル内で 'as_json'をオーバーライドすることです。あなたの問題に関しては、xhr要求をログに記録するようにブラウザを設定できますか(クロムはそれをしますか? –