0

最終的にデータベースに保存されたメッセージを取得し、ユーザーに対してグローバルに設定するメッセージサービスがありますが、今のところ、そのように設定しています

  messages: [
    Ember.Object.create({
      id: 1,
      name: "Out Bid",
      body: "You've been out bid on an item",
      read: false,
      seen: false
    }),
    Ember.Object.create({
      id: 2,
      name: "Out Bid",
      body: "You've been out bid on an item, You've been out bid on an item",
      read: true,
      seen: false
    })
  ],

これらのメッセージのうち、マークされていないメッセージの数を計算してseen、その数が 0 を超えているかどうかを示すこのバブルをクリックすると、messagesルートに移動します。messagesルートでは、サービスを注入し、サービスmessagesに含まれるメッセージと同じモデルを設定します

model() {
    return this.get('messages').get('messages');
}

このルートは、コンポーネントをレンダリングする各ループでメッセージを表示します

{{#each model key="id" as |message|}}
    {{message-item message=message}}
{{/each}}

unreadコンポーネントでは、そのようにクラスを追加しようとしています

classNameBindings: ['unread'],
unread: Ember.computed('message.unread',function(){
    return this.get('message').get('read') === false;
}),

それは機能していますが、クリックアクションを起動してメッセージをモーダルで表示しread、計算されたものが更新されていないことをマークすると、

click() {
    var message = this.get('message');
    this.get('notification').notify({message: message.get('body')});
    message.set('read',true);
}

設定する前と後console.logの値message.get('read')を確認すると、適切に設定されていることがわかりますが、unread読み取り済みとしてマークされた後、テンプレートはクラスを削除するために計算されたものを更新していません。

4

1 に答える 1