我試圖建立使用離子框架簡單的移動消息傳送應用程序的圖。有兩個視圖,一個用於消息,另一個用於請求。當一個請求被接受時,用戶應該從請求視圖(和請求列表)中被移除並移動到消息視圖(並被推送到消息列表)。更新跨兩個不同的控制器
有兩個控制器,RequestCtrl和MessageCtrl。在視圖中接受請求時,RequestCtrl將用戶從請求列表中刪除,並將用戶添加到MessageCtrl中的消息列表中。到目前爲止,這已經通過創建一個Angular服務來完成:
app.factory('$chats', ['$localstorage', '$http', '$rootScope',
function($localstorage, $http, $rootScope) {
return {
refresh: function() {
var messages = [];
var user = $localstorage.getObject('user');
console.log("message before user");
console.log(user);
for (var i = 0; i < user.interactions.length; i++) {
if (user.interactions[i].isConnected == "connected") {
var friend = user.interactions[i].user_id;
$http.get('/get_profile?id=' + friend).then(function(resp) {
messages.push({
"_id": resp.data._id,
"profileImg": resp.data.profileImg,
"firstName": resp.data.firstName,
"lastName": resp.data.lastName,
"lastMessage": "This is placeholder text"
});
});
}
}
// $rootScope.$broadcast("chatsUpdated");
return messages;
}
}
}
但是,當列表更新時,視圖不會更新。我已經嘗試在調用服務時使用$ emit和$ broadcast推出一個事件,並在MessageCtrl中用$ on捕獲它,但它似乎沒有更新。
我很新的角度,所以我可能失去了一些東西,但我真的很感激,如果有人能在正確的方向指向我!
可以請你太也張貼在這裏的''MessageCtrl代碼。 –