我有一个聊天页面,其中的消息通过数组ng-repeat
上的$scope.messages
显示
我订阅了后端即服务并使用他们的api发送即时消息。收到消息后,将执行onChatMessage
。
我想要做的是将收到的任何邮件推送到$scope.messages
阵列,以便聊天页面显示新收到的邮件。但是,我不知道如何从我的函数访问$scope.messages
数组。这可能吗?
我的控制员:
.controller('ChatCtrl',function($scope,$stateParams,$ionicScrollDelegate,$q,principal){
$scope.messages = ["test message 1","test message2];
})
此功能在收到消息时调用:
function onChatMessage(senderID,message){
// senderID, message are predefined by the api of my backend-as-a-service
// I'd like to push the message received here to scope.messages
// but accessing $scope here leads to undefined error.
}
答案 0 :(得分:2)
是
function onChatMessage() {
var scope = angular.element(...get the element...).scope()
// example, angular.element(document.body).scope();
scope.messages.push()
....
scope.$digest() // updates the watched expressions
// - hence doing the angular's real-time view updates magic
}
这是单向的。