我一直试图解决这个问题,我认为我确实理解“为什么”。但即使知道我不能做出'这就是为什么!'。
好吧,我正在尝试做什么: 我想得到一个
的名字User -> with the id of a teacher.
'users' has Many 'teachers'
'teachers' belongsTo One 'users'
'lessons' belongTo One 'teachers'
'teachers' hasMany 'lessons'
teachers Model =>
id,
user_id,
created_at,
updated_at
所以: 在我的AngularJS视图中,我希望通过教师ID获得所有课程。 (已经完成)
<div class="col-md-3 card-container-bottom" ng-repeat="lesson in lessons">
<div class="card">
<img ng-src="{{lesson.img}}" alt="Avatar" class="card-avatar">
<div class="card-container">
<div class="card-title">{{lesson.title}}</div>
<div class="card-instructor">{{lesson.teacher_id}}</div>
</div>
</div>
</div>
当我上课时,由于模特我只收到了teacher_id。 (但我想要他/她的全名)
为了解决这个问题,我提出了另一个HTTP请求来接收教师姓名和姓氏(来自用户模型)=&gt;如果我用邮差做,它完美地工作(因为只有一对一)。但是当我尝试通过angular
执行相同的请求时,会出现主要问题正如我一直在阅读的那样,当您在ng-repeat中发出HTTP请求时,您的应用程序将会崩溃,因为它会在一个bucle中永远更新......或类似的东西(不太了解)。 / p>
无论如何,我做了以下代码: 在我看来:
{{getInstructor()}}
在我的控制器中:
var instructorsID = [];
$scope.getInstructor = function() {
$scope.instructor.count = $(".card").length;
for (var i=0; i<$scope.instructor.count; i++) {
if (!instructoresID.find(x => x.id == $scope.lessons[i]["id"])){
instructoresID.push({
cat: $scope.category.id,
id : $scope.lessons[i]["id"]
});
}
}
$scope.instructors = instructorsID;
这将保存所有categories_id和lessons_id 显示到视图中的课程,到数组instructorsID
现在,我有每节课的类别ID和课程ID
for (var i=0; i<instructoresID.length; i++) {
lessonService.getInstructorName(instructorsID[i]['cat'], instructorsID[i]['id'])
.then(
function(response) {
var res = response.data.data;
// alert(res.nombre)
if (!instructorsID.find(x => x.ins == $scope.lessons[i]["ins"])){
instructorsID.push({
ins: res.nombre
});
}
},
function(){
alert('error');
if (!instructorsID.find(x => x.ins == $scope.lessons[i]["ins"])){
instructorsID.push({
ins: 'error'
});
}
}
);
}
在我的服务中:
.service('lessonService', function ($http) {
return {
getInstructorName: function(categoryId, lessonId){
return $http({
method: 'GET',
url: 'http://localhost:3000/api/v1/categories/'+categoryId+'/lessons/'+lessonId+'/teacherName',
data: lessonId
});
}
}
});
好吧,这些代码将进入一个无限循环,会破坏你的资源管理器。
所以,我的问题是如何使用angularJS从API获取这些数据。 提前谢谢!