从 MeanJS 中的 AngularJS Promise 获取值

Getting a value from a AngularJS Promise in MeanJS

我最近在玩 MeanJS,我 运行 遇到了一个我不太熟悉的问题,所以我希望有人能在这里提供帮助。

我有一个 angular 控制器,它设置的范围如下:

// Find existing Topic
$scope.findOne = function() {
    $scope.topic = Topics.get({
        topicId: $stateParams.topicId
    });
};

我在 $scope 中设置了 topic。但是,我还需要从 topic 中获取一个值。让我们假设它是一个日期,例如 createdAt。我需要获取此值,然后对其执行另一个操作以设置另一个范围值。问题是,$scope.topic 对象是一个 Angular 承诺。我怎样才能从该承诺中获得价值 createdAt (这是一个日期)?

您可以使用 promise 回调。

$scope.findOne = function() {
    $scope.topic = Topics.get({
        topicId: $stateParams.topicId
    });
    $scope.topic.$promise.then(function(data) {
        // access data.createdAt here
    });
};

它的实际还取决于你想在哪里使用它。所以如果想在视图中使用这个,可以直接写成:

<span> Created at: {{topic.createdAt}}</span>

Angular 将在加载数据时自动更新该范围变量。