Angular和MEAN.js $ scope属性未定义

时间:2014-10-06 19:46:31

标签: angularjs angularjs-scope mean-stack

我目前正在使用Angular和MEAN.js开发一个小应用程序。 我想绘制一个D3图表,其中包含来自模型的一些实际数据。 为此,我必须从$ scope.campaign变量中读取并使用来自$ scope.campaign.tokens的数据初始化$ scope.dataBarChart。

// Find existing Campaign
$scope.findOne = function() {
    $scope.campaign = Campaigns.get({ 
        campaignId: $stateParams.campaignId
    });

    $scope.dataBarChart = [
        {
        'key': 'Token Requested',
        'values': [['10.10.2014', 550000], ['11.10.2014',300000]]
        }, {
        'key': 'Token Consumed',
        'values': [['10.10.2014', 250000], ['11.10.2014',200000]]
        }
    ];
};

当我尝试记录$ scope.campaign的值时,我获得了所需的所有数据。不幸的是,当我尝试访问$ scope.campaign.tokens时,我收到一个错误,例如无法从未定义的值访问令牌。基本上,似乎没有数据,但我从日志中知道不是这样的。

完整代码完全相同,但使用console.log行

// Find existing Campaign
$scope.findOne = function() {
$scope.campaign = Campaigns.get({ 
   campaignId: $stateParams.campaignId
});

console.log($scope.campaign)

$scope.dataBarChart = [{
   'key': 'Token Requested',
   'values': [['10.10.2014', 550000], ['11.10.2014',300000]]
   }, {
   'key': 'Token Consumed',
   'values': [['10.10.2014', 250000], ['11.10.2014',200000]]
}];
};

console.log显示正确的内容,但是当我尝试使用它时,$ scope.campaign.tokens,它表示未定义。

有人建议吗? 感谢

1 个答案:

答案 0 :(得分:1)

尝试

$scope.campaign.$promise.then(function(data) {
   console.log(data.tokens)
});