我建立這個火力地堡數據庫結構支持的一個簡單的聊天應用:如何將客戶端屬性添加到FirebaseListObservable中的項目中?
messages: {
"-KTjL_oLrKOboa2su2zk": {
name: "puf",
text: "Look I'm smiling :-)"
},
"-KTjNfaNem752ChFBcnC": {
name: "puf",
text: "And now I'm not smiling"
}
}
我使用Angular2和AngularFire2生成HTML。我從火力地堡數據庫信息的簡單列表在我的控制器:
export class AppComponent {
messages: FirebaseListObservable<any[]>;
constructor(public af: AngularFire) {
this.messages = af.database.list('messages');
}
}
我想要檢測特定條件下每封郵件中,並翻譯成我的HTML表情符號。由於這純粹是顯示來自現有內容的信息,因此我不想將其存儲在數據庫中。
我的HTML模板:
<li class="text" *ngFor="let message of messages | async">
{{message.name}} {{message.emoji}}: {{message.text}}
</li>
在火力地堡的JavaScript SDK,這將是類似於:
ref.on('child_added', function(snapshot) {
var message = snapshot.val();
if (message.text.indexOf(':-)') >= 0) {
message.emoji = '';
}
addMessageToHTML(message);
});
我應該如何在AngularFire2做這樣的客戶端富集?
是問題如何從FirebaseListObservable或別的東西獲得數據? – Sasxa
我不確定。我可以說最好的是我想從FirebaseListObservable中爲每個對象添加一個屬性,以便我可以在我的HTML中顯示該屬性(我剛剛將這個屬性添加到該問題中)。 –
我用工作示例更新了答案。 – Sasxa