Angularjs 角度1.5组件等待数据

Angularjs 角度1.5组件等待数据,angularjs,Angularjs,我试图使用au组件来显示我的数据 在我的模板中,我有: {{myDatas}} <my-cmp data="myDatas"></my-cmp> 这个代码不起作用。 但如果我用预期的JSON替换$scope.myDatas,它就可以工作了 以下是TestFactory的代码: (function () { 'use strict'; angular .module('core.test') .factory('TestFactory', TestFac

我试图使用au组件来显示我的数据

在我的模板中,我有:

{{myDatas}}
<my-cmp data="myDatas"></my-cmp>
这个代码不起作用。 但如果我用预期的JSON替换$scope.myDatas,它就可以工作了

以下是TestFactory的代码:

(function () {
'use strict';

angular
    .module('core.test')
    .factory('TestFactory', TestFactory);

function TestFactory($resource) {
    return $resource(
        '/api/test/:id',
        {
            id: '@id'
        },
        {
            query: {
                method: 'GET',
                isArray: true
            },
            read: {
                method: 'GET'
            }
        }
    );
}
})()

因此,我认为我必须等待来自TestFactory的$resource的数据,但我如何才能做到这一点

谢谢

编辑 这就是我所做的。我换了

$scope.myDatas = TestFactory.read({id: $id});

在我的组件控制器中,我有$onInit,如下所示:

this.$onInit = function () {
    console.log($scope.$ctrl.data);
    $scope.percent = parseFloat(($scope.$ctrl.data.nbElements/ $scope.$ctrl.data.nbAllElements * 100).toFixed(2))
}
但是在chrome控制台中,它告诉我$scope.$ctrl.data是未定义的,并且错误“TypeError:cannotreadproperty'nbElements”是未定义的

如果我这样做 log($scope.$ctrl)

我在chrome控制台中有:

>myController
    >$onInit: function()
    >data: m
    >__proto__:Object

Chrome告诉我MyController已经过评估,因此我认为MyController在构建我的属性之前没有等待数据。我做错了什么?

在我的模板中添加ng if条件的问题已解决

<my-cmp ng-if="myDatas" data="myDatas"></my-cmp>


感谢您的帮助

在我的模板中添加ng if条件的问题已解决

<my-cmp ng-if="myDatas" data="myDatas"></my-cmp>


感谢您的帮助

什么是
测试工厂
?它是一个
异步
请求吗?如果是,这是您的问题。我添加了工厂的代码。是的,它会发出异步请求,因为您正在制作组件(与指令相反)我还习惯于为控制器使用
$onInit
生命周期钩子。当在控制器上调用构造函数时,它还没有使用其他作用域方面进行初始化。什么是
测试工厂
?它是一个
异步
请求吗?如果是,这是您的问题。我添加了工厂的代码。是的生成异步请求由于您正在生成组件(与指令相反),我还习惯于为控制器使用
$onInit
生命周期挂钩。在控制器上调用构造函数时,它尚未使用其他作用域方面进行初始化。
<my-cmp ng-if="myDatas" data="myDatas"></my-cmp>