3

ストアからレコードを削除して、アイテムを一覧表示するビューを自動的に更新しようとしていますが、これまでのところうまくいきませんでした。

コントローラの方法で試しtweet.deleteRecord()ましたdeleteが、ユーザーが持っているすべての「ツイート」が削除され、ビューが更新されず、ユーザーのツイートに再度アクセスしようとするとエラーが発生します。

ストアからレコードを削除し、レコードの関係を更新し、ビューを更新する適切な方法は何ですか?

ベローは私のコードの一部です:

モデル

App.Store = DS.Store.extend({
    revision: 11,
    adapter: 'DS.FixtureAdapter'
});

App.User = DS.Model.extend({
    screenName: DS.attr('string'),
    name: DS.attr('string'),
    profileImage: DS.attr('string'),
    url: DS.attr('string'),
    followersCount: DS.attr('number'),
    description: DS.attr('string'),
    tweetsCount: DS.attr('number'),
    friendsCount: DS.attr('number'),
    tweets: DS.hasMany('App.Tweet')
});

App.Tweet = DS.Model.extend({
    date: DS.attr('date'),
    text: DS.attr('string'),
    containsURL: DS.attr('boolean')
});

コントローラ

App.UserController = Ember.ObjectController.extend({
    delete: function(tweet) {
        // code to delete tweet both from
        // App.Tweet and App.User.Tweets relationship
        // and automagically update the view
    }
});

意見

<script type="text/x-handlebars" data-template-name="user">
    <h3>{{ controller.name }}</h3>
    <ul>
    {{#each tweet in tweets}}
        <li>
            {{ tweet.text }}
            -
            <a href="#" {{action "delete" tweet}}>Delete</a>
        </li>
    {{/each}}
    </ul>
</script>
4

1 に答える 1

4

モデルbelongsTo内に関係を含める必要があります。App.Tweet例えば、

App.Tweet = DS.Model.extend({
    date: DS.attr('date'),
    text: DS.attr('string'),
    containsURL: DS.attr('boolean'),
    user: DS.belongsTo('App.User'),
});

これで、を呼び出すtweet.deleteRecord()と、対応するユーザーモデルのtweets関係も更新されます。これがjsfiddleです。

于 2013-03-24T21:46:16.173 に答える