我的AngularJS初学者问题非常简单:我试图将数据从工厂传递到控制器并打印返回到我视图的对象,这里是我的代码:
angular.module('app').factory('blogFactory',function(){
return {
//EDIT
post:{"author":"Bob","name":"smith","content":"some content"},
read: function(){
return this.post;
}
}
});
在控制器中:
angular.module('app').controller('MainCtrl',['$scope','blogFactory'], function($scope, blogFactory){
$scope.datas = blogFactory.read();
console.log($scope.datas);});
当我console.log($scope.datas
时,它会将对象记录正确。在视图中,我无法访问对象的属性:
<section class="overview">
<article ng-repeat="data in datas">
<p>{{data.name}}</p> //Doesn't display anything
<p>{{data}}</p> // Displays the object
</article>
</section>
有没有人有任何想法?提前致谢
答案 0 :(得分:1)
name
$scope.datas
的媒体资源
{"author":"Bob","content":"some content"}
您必须打印datas.author
。
这就是<p>{{data.name}}</p>
不显示任何数据的原因。
根据您的工厂代码,post
是一个对象。但在您看来,您正在使用
<article ng-repeat="data in datas">
这不是必需的。只需datas
即可获得个人帖子
答案 1 :(得分:0)
这段代码工作正常我已经测试过了:
var app = angular.module('app',[])
app.factory('blogFactory',function(){
return {
post:{"author":"Bob","content":"some content"},
read: function(){
return this.post;
}
}
});
app.controller('MainCtrl', function($scope,blogFactory){
alert();
$scope.datas = blogFactory.read();
console.log($scope.datas);
})
对于视图:
<body ng-controller ="MainCtrl">
<section class="overview">
<article ng-repeat="data in datas" >
<p>{{data.name}}</p>
<p>{{data}}</p>
</article>
</section>
</body>