3

みんなでアホ!

良い一日!私は Backbone.js フレームワークを適応させ始めており、モデルの URL がどのように機能するかについて滑りやすい把握をしています:

   var TodoItem = Backbone.Model.extend({
     urlRoot: 'http://localhost:3354/api/todo/GetAllTodo' // this guy right here
   }

コレクションの URL に影響します - 上記のモデルがコレクションで使用されると:

 var TodoList = Backbone.Collection.extend({
                model: TodoItem,
                url: 'http://localhost:3354/api/todo/DosomethingElse' //Conflict of URL?
        }

最後に、 を試すと、サービスは形式model.fetch()を介してデータの JSON 表現を返します。これにより、返された実際の json データを格納するプロパティがモデルに作成されます。これは問題です。モデルは 1 つのレコードではなく単一のレコードを対象としているためです。データの。[{}]objectarray[]

お時間をいただきありがとうございます。

4

1 に答える 1

4

のバックボーン ソース コードを確認するModel.urlと、モデルの URL ベースが によって構築されていることがわかります。

var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url');

これは、あなたがするときTodoItem.urlRootよりも優先されることを意味しますTodoList.urlmodel.fetch()

parse使用して、目的の形式を抽出できます。

var TodoItem = Backbone.Model.extend({
    urlRoot: 'http://localhost:3354/api/todo/GetAllTodo',
    parse: function(data) {
        return data[0];
    }
}
于 2013-07-24T16:12:28.110 に答える