0

次の問題があります。

投稿のカテゴリを選択するための選択フィールドを持つフォーム。投稿のカテゴリが 100 であるとします。Ember インスペクタでは、これは次のように表示されます。

category: <App.Category:ember708:100>

投稿を保存すると (Ember Data 1.0.0 beta 2 経由)、カテゴリが突然次のように変わります。

category: 100

そして、値は選択リストで選択されなくなります。クリア済みです。

保存するコード:

    post.save().then(
            function () {
              alert("Save OK");
            }
    )

どの方向に検索する必要があるか考えてみてください...別のページに遷移してから編集画面に戻ると、値はすべて正しいです。したがって、データはモデル内でまだ正しいです...

4

3 に答える 3

3

最新のカナリアビルドをbelongsTo入手してください。これで問題は解決しhasManyますが、ember-data のコードを変更してみましたが、これまでのところうまくいきました。

行番号167を次のように変更しました

if (relationshipType === 'manyToNone' 
 || relationshipType === 'manyToMany' 
 || relationshipType === 'manyToOne') 

アップデート

serializeHasManyより良い解決策は、シリアライザーのメソッドをオーバーライドすることです。

@wycatsに感謝します(github #1273の議論に従って)

何かのようなもの

Deific.AppacitiveRESTSerializer = DS.RESTSerializer.extend({
    //primary key is '__id' in appacitive, overriding default behaviour
    primaryKey: '__id',

    serializeHasMany: function(record, json, relationship) {
        var key = relationship.key;

        var relationshipType = DS.RelationshipChange.determineRelationshipType(record.constructor, relationship);

        if (relationshipType === 'manyToNone' || relationshipType === 'manyToMany' || relationshipType === 'manyToOne') {
            json[key] = record.get(key).mapBy('id');
        // TODO support for polymorphic manyToNone and manyToMany relationships
        }
    }
});

Deific.Store = DS.Store.extend({
    revision: 12,
    adapter: DS.RESTAdapter.extend({
        namespace: 'service',
        defaultSerializer: 'Deific/appacitiveREST'
    }),
});

とりあえずこれで使えます。お役に立てれば。

于 2013-09-11T10:58:39.033 に答える
0

これは今すぐ修正する必要があるようです。 https://github.com/emberjs/data/pull/1257

于 2013-09-10T14:53:10.863 に答える
0

Looks like a bug in Ember Data: https://github.com/emberjs/data/issues/1228

于 2013-09-09T17:41:45.373 に答える