我正在使用第三方库(Pubnub(,该库具有$pubnubChannel
方法在控制器中加载数据,因此您可以轻松显示更新。
在控制器中,您可以像这样使用它:
$scope.messages = $pubnubChannel(myChannel,{ autoload: 2 });
然后在视图中$scope.messages
将正确显示 2 条消息。目前为止,一切都好。
但是我想像这样直接访问控制器中的数据:
var myMessage = $scope.messages[0].content
但我无法弄清楚如何获取实际数据。
假设数据如下所示:
{
content:"Hi"
date:"2017-05-13T12:12:14.048Z"
id:"xyz123"
sender_guid:"12345678"
}
如果我运行这个:
console.log($scope.messages)
我看到一个复杂的对象:
> 0: Object
> 1: Object
> $$getPrototypeMethods:function ()
> $$getPublicMethods:function ()
> $$newMessage:function ()
> $channel:function()
etc
etc
$pubnubChannel方法中的所有函数都显示在输出中。
我想要的数据在Object
条目中。我试图像这样得到它:
var myMessage = $scope.messages[0].content
但这不会返回任何内容。如何访问数据对象?
您的消息可能存储在$messages中。
var myMessage = $scope.messages.$messages[0].content
在这里的源代码中找到它:https://github.com/pubnub/pubnub-angular/blob/master/src/pubnub_channel.js
在第 47 行中,您可以看到this.$messages = [];
$pubnubChannel工厂的一部分。