1

だから私は自分のコードから始めて、それをペアにして、それからさらにペアにして、コードがまだ機能していないモデルページにある例にたどり着きました。まず、私の単純なコードの残りは次のとおりです

App.Router.map(function() {
    this.resource("multipost", function() {

    });
});

App.MultipostRoute = Ember.Route.extend({
    model: function() {
        return App.Post.find();
    }
});

App.Store = DS.Store.extend({

});

App.Post = DS.Model.extend({
    firstName: DS.attr('string'),
    lastName: DS.attr('string'),

    isPersonOfTheYear: DS.attr('boolean')
});

そして、私のAPIはルート/postsでこれを返します

{
    "posts": {
        "first_name": "Barack",
        "last_name": "Obama",
        "is_person_of_the_year": true
    }
}

私が試したいくつかの基本的なhtmlは別として

{{firstName}}
{{posts.firstName}}
{{post.firstName}}

など、私のテンプレートではどれも何も返しません。

何も吐き出していないボタンを押したときにモデルを吐き出す単純なコントローラーがあります

App.MultipostController = Ember.ObjectController.extend({
    submitMultiPost: function() {
        console.log(this.get('model').get('firstName'));

        //this.get('model').save();

    }
})

そして、何も返されていない多くのコマンドを開発コンソールにダンプしました。ここで何が欠けているのでしょうか? ルートとして「posts」ではなく「post」を返すjsonを持っていたときにエラーを吐き出していたので、何かをしようとしています。しかし、何をしても、どのように探しても、モデルには何も見つかりません。はい、XHR 呼び出しを確認しましたが、正常に呼び出しを行い、データを取得しています。

他の唯一の奇妙な点は、モデルにバインドされた 2 つのテキスト フィールドがあり、2 つのフィールドのいずれかに入力すると表示されることです。それまでは、モデル全体に​​は何も含まれておらず、空に見えます。ここで何が欠けていますか?

4

2 に答える 2

0

投稿のリストを取得する場合、応答本文は投稿の配列である必要があります。また、単一の投稿でも複数の投稿でも、id 属性も渡す必要があります。

{
    "posts": [{
        "id": 1
        "first_name": "Barack",
        "last_name": "Obama",
        "is_person_of_the_year": true
    }]
}

さらに、コントローラーが拡張する必要がある投稿のリストについては、ArrayController. 投稿フィールドにアクセスするには、テンプレートのループ内で{{#each post in controller}}使用してから使用します。{{post.first_name}}

于 2013-07-05T03:56:01.207 に答える