0

保存を介してデータを投稿しようとしていますが、更新しない限りブラウザーにデータが表示されません。todo.id はすぐに表示されますが、todo.name は表示されません。

    <body ng-controller="TodoCtrl">
      <div ng-repeat="todo in Todos.record">
           <div>{{todo.id}} : {{todo.name }}</div>
      </div>
      <div>
        <input ng-model="todo.name" />
        <button ng-click="addItem()">Add Item</button>
      </div>
    </body>

var app = angular.module("myApp",['ngResource']);

app.factory("Todo",function($resource){
    return $resource(
        "http://localhost/rest/motors/users?app_name=motors",
        {},
        {
            query: {method: 'GET',isArray: true},
            get: {method: 'GET'},
            save:{method:'POST'}
        }
    )
})

app.controller("TodoCtrl", function ($scope, Todo) {
    "use strict";
    $scope.Todos = Todo.get();
    $scope.addItem = function(){
        Todo.save($scope.todo, function(data){
            $scope.Todos.record.push(data);
            $scope.todo={};
        });
    }
})
4

2 に答える 2

0

そのコード サンプルが実際のコードを表している場合、「todo.name」を参照する「input」フィールドが ng-repeat ループの外側にあることが問題である可能性が高いため、「Todo.name」の外側でモデル プロパティを定義しています。記録」リスト。

于 2014-05-30T16:51:46.370 に答える
0

&fields=* を API URL に追加すると、問題が解決しました。例: 変更

"http://myexample.com/rest/motors/users?app_name=motors"
 to 
"http://myexample.com/rest/motors/users?app_name=motors&fields=*"

手伝ってくれてありがとう。

于 2014-05-30T17:06:53.257 に答える