1

私はAngularJSを学んでいます。次の JSON エンドポイントがあります

/api/v1/leaderboards/:id

ID に対応するリーダーボードを返します。

次の AngularJS サービスがあります。

App.factory 'Leaderboard', ['$resource', ($resource) ->
  $resource '/api/v1/leaderboards/:id', id: '@id'
]

そして、この AngularJS コントローラー:

App.controller 'LeaderboardsCtrl', ['$scope', 'Leaderboard', ($scope, Leaderboard) ->
  $scope.selectedLeaderboard = Leaderboard.query()
]

そして、これが私の見解です(hamlで):

.leaderboard{"ng-app" => 'Leaderboards', id:"ng-app"}
  %h4.title
    Leaderboard Title
  .leader-section{'ng-controller' => "LeaderboardsCtrl"}
    .leader-content{'ng-show' => "selectedLeaderboard", 'ng-repeat' => "leader in selectedLeaderboard"}
      .media.award-group
        %a.pull-left{href: "{{leader.user.path}}"}
          %img.media-object{src: "{{leader.user.small_pic_url}}"}
        .media-body
          %h4.media-heading
            %a.leader-name{href: "{{leader.user.path}}"}
              {{leader.user.name}}
            .metric.pull-right
              {{leader.count}}

ページをロードすると、コンソールに次のエラーが表示されます。

GET http://localhost:3000/api/v1/leaderboards 404 (Not Found)

:id実際のリーダーボード IDに置き換えると、すべて正常に動作します。しかし、ビュー レベルからその ID を渡すにはどうすればよいでしょうか?

4

1 に答える 1

0
App.controller 'LeaderboardsCtrl', ['$scope', 'Leaderboard', ($scope, Leaderboard) ->
  $scope.selectedLeaderboard = Leaderboard.query({id: 'count-receiver'})
]

上記のようにIDをサービスに渡すだけです。

于 2013-08-06T19:44:23.630 に答える