Angularjs 角度1.5组件等待数据
我试图使用au组件来显示我的数据 在我的模板中,我有: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
{{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>