0

ページが読み込まれると、$ resourceが:city_idに対してnilを読み取っているため、リソースは404をスローします。私はangularjsから始めているので、説明をいただければ幸いです。

この$resourceはモデル内のエントリのPUTにも使用されるため、フォームエントリは永続化できません。

app = angular.module("CityAngular", ["ngResource"])
app.factory "Seal", ["$resource", ($resource) ->
    $resource("/cities/:city_id/seals/:id", {city_id: "@city_id", id: "@id"}, {update: {method: "PUT"}})
]

@SealCtrl = ["$scope", "Seal", ($scope, Seal) ->
    $scope.seals = Seal.query()

    $scope.addSeal = ->
        seal = Seal.save($scope.newSeal)
        $scope.seals.push(seal)
        $scope.newSeal = {}
]
4

1 に答える 1

2

Railsについて言及しているように、angularjs-rails-resourceを確認することをお勧めします。リソースの操作がはるかに簡単になります。シールを都市の下にネストしているため、常にcity_idを指定する必要があります。

app = angular.module("CityAngular", [])
app.factory "Seal", ["railsResourceFactory", ($resource) ->
  $resource url: "/cities/{{city_id}}/seals/{{id}}", name: 'seal'
]

app.controller 'SealCtrl', ["$scope", "Seal", ($scope, Seal) ->
  $scope.city_id = 1

  $scope.seals = Seal.query(city_id: $scope.city_id)

  $scope.addSeal = ->
    $scope.newSeal.city_id = $scope.city_id
    seal = new Seal($scope.newSeal).create()
    $scope.seals.push(seal)
    $scope.newSeal = {}
]
于 2013-02-26T12:38:29.753 に答える