如何访问作为复杂对象(Pubnub)返回的AngularJS数据



我正在使用第三方库(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工厂的一部分。

最新更新