2

さて、これが私のメインのバックボーンコードです

(function ($) {
var Job = Backbone.Model.extend({});

var JobList = Backbone.Collection.extend({
    model: Job,
    url: "/api/jobs?format=json"
});

var JobView = Backbone.View.extend({
    el: $('#jobs'),

    _templatesrc: $("#job-template").html(),
    _template: {},

    initialize: function () {
        var self = this;
        _.bindAll(this, 'render');
        //create the template
        this._template = Handlebars.compile(this._templatesrc);

        //setup data
        this.collection = new JobList();
        //response function from server query
        var response = function () {
            console.log(arguments);
            self.render();
        };
        var response2 = function () {
            console.error(arguments);
            self.render();
        };
        this.collection.fetch();
    },

    render: function () {
        console.log("models", this.collection.models);
        $(this.el).html(this._template(this.collection.models));
    }

});
var view = new JobView();
})(jQuery);

私がするとき、私はthis.collection.fetch()何も得ません。私が行うthis.collection.fetch({ success:response, error:response2});と、次のエラーがスローされます。

Backbone.View.extend.initialize.response2 app.js:29
g.wrapError backbone-min.js:104
f.Callbacks.o jquery.min.js:2
f.Callbacks.p.fireWith jquery.min.js:2
w jquery.min.js:4
f.support.ajax.f.ajaxTransport.send.d

クロムでは、JSON応答を返すことがわかりますが、これは次のようになります

[{"Client":"hi",
  "ReporterTime":"\/Date(-62135578800000-0500)\/",
  "TimeTaken":PT0S,
  "Status":"Start"}]

Backbone が JSON 応答をコレクションに変換しない理由について何か考えはありますか?

4

2 に答える 2

0

私が間違えない限り、PT0Sは有効なJSONではありません。引用符で囲んで返してみてください。

[{"Client":"hi",
  "ReporterTime":"\/Date(-62135578800000-0500)\/",
  "TimeTaken":"PT0S",
  "Status":"Start"}]
于 2012-08-01T09:54:58.530 に答える
0

ServiceStack.Text の JsonSerializerで TimeSpans のサポートを修正しました。

NuGetまたはGitHubで v3.94+ から利用できるようになります。

于 2012-08-01T20:19:53.693 に答える