2016-01-07 8 views
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 после его отмеченного чтения.

ответ

1

Вы смотрите неправильное свойство. Смотрите read вместо unread:

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

Вы код в течение всего дня каждый день, и ожидать, чтобы не пропустить такие мелочи, как это! – Jordan