以下代码存在问题。任何人都可以检查图像和代码。根据调用顺序不会显示值,而是覆盖它。开发工具控制台中的响应是正确的,因为UI显示不同的重新排列。 Image
相同的代码行 - JS代码 -
$scope.fetchOneBlog = function (id) {
$http.get(urlBase+'/blog/'+id)
.success(function(data){
$scope.blogDetailsError=false;
$scope.blogs = data;
});
};
$scope.getOneUser = function (userId) {
$http.get(urlBase+'/user/'+userId)
.success(function(data){
$scope.blogDetailsError=false;
$scope.oneUser={"name":""};
$scope.oneUser = data;
console.log($scope.oneUser.name);
var myObject = JSON.stringify($scope.oneUser);
console.log(myObject);
});
控制器js的末尾还有一个代码 -
$scope.init = function(id){
$scope.fetchOneBlog(id);
};
上述代码是否与下面的视图有任何问题?
查看代码 -
<ul class="container">
<li class="comment" ng-repeat="review in blogs.review | orderBy: '-creationTime' ">
<div class="clearfix">
<h5 class="pull-left" ng-init="getOneUser(review.userId)"><b>{{oneUser.name}}</b></h5>
<p class="pull-right"><em>Commented on : {{ review.creationTime | date:'medium' }}</em></p>
</div>
<p>
<em>{{ review.comments }}</em>
</p>
</li>
</ul>
任何人都可以看一下图片,让我知道问题或错误。
答案 0 :(得分:0)
好的,问题是每次都会覆盖$ scope.oneUser对象。控制台正确显示的原因是因为记录时值是正确的。被覆盖的值是因为该值与重复项(审核)不在同一上下文中,但与其父博客相同。= / p>
尝试这样的事情:
var isNull = function(obj) {
if (typeof(obj) === "undefined" || obj === null || obj === "null") {
return true;
}
return false;
};
$scope.allUsers = [];
$scope.getUsername = function(userId) {
var userName = "";
var users = $scope.allUsers.filter(function(obj) {
return obj.userId === userId;
});
//check if the user is in the list and get the first value
if (!isNull(users) && users.length > 0)
{
userName = users[0].name;
}
return userName;
};
$scope.getOneUser = function(userId) {
$http.get(urlBase + '/user/' + userId)
.success(function(data) {
$scope.blogDetailsError = false;
var oneUser = {
"name": ""
};
oneUser = data;
oneUser.userId = userId;
$scope.allUsers.push(oneUser);
console.log($scope.oneUser.name);
var myObject = JSON.stringify($scope.oneUser);
console.log(myObject);
});
然后你可以在html中使用它
<h5 class="pull-left" ng-init="getOneUser(review.userId)"><b>{{getUsername(review.userId)}}</b></h5>
如果有帮助,请告诉我。