コース登録ポータルを作成しようとしています。すべてが正しく機能していましたが、学生がコースを登録するためにクリックしようとすると、ボタンは機能しません。ここに私のコードは次のとおりです。mongodb node.jsとangular jsを使用してコース登録ポータルを作成する方法
FIRST I CREATE A STUDENT SCHEMA
var studentSchema = new Schema({
firstname:{type: String, required: true},
middlename:{type: String, required: true},
lastname:{type: String, required: true},
department:{ type: Schema.Types.ObjectId, ref: 'department', required: true },
Courses:[{type: Schema.Types.ObjectId, ref: 'course'}],
});
学生スキーマはcourseSchema
var courseSchema = new Schema({
title: {type: String, required: true},
code:{type: String, required: true, unique: true},
unit:{type: String, required: true},
level:{type: String, required: true},
department:{type: Schema.Types.ObjectId, ref: 'department'}
});
の配列であるサブ文書のコースを持っている私もstudent.departmentがあるMongoDBの中のすべてのコースを取得するためのAPIを作成しますここcourse.departmentに等しいコード
router.get('/student/getcourses/:studentid', function(req, res){
if (!req.params.studentid) {
sendJSONresponse(res, 404, {
"message": "Not found, studentid is required"
});
return;
}
Student
.findOne({_id : req.params.studentid})
.exec(function(err, student){
if (err) {
sendJSONresponse(res, 404, err);
}else{
Course
.find({department : student.department})
.populate('department')
.exec(function(err, courses){
if (err) {
sendJSONresponse(res, 404, err);
}else{
sendJSONresponse(res, 200, courses);
}
});
}
});
});
である私もここの学生のための特定のコースを登録するAPIを作成するコード
ですここangularjsとフロントエンドのrouter.post('/student/courseReg/:studentid', function(req, res){
if (!req.params.studentid) {
sendJSONresponse(res, 404, {
"message": "Not found, studentid is required"
});
return;
}
Student
.findByIdAndUpdate(req.params.studentid, {$push: {regCourses:req.body.course}})
.exec(function(err, student){
if (err) {
sendJSONresponse(res, 404, err);
}else{
sendJSONresponse(res, 200, " registration successfull");
}
});
});
iは
$http.get('/api/student/getcourses/' + $scope.studentid)
.success(function(data) {
$scope.courses = data ;
$scope.register = function(course){
$http.post('/api/student/courseReg/' + $scope.studentid, course)
.success(function(data){
console.log(data);
});
};
})
.error(function (e) {
return e;
});
、ここで何をしたかであるHTMLコード
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Title</th>
<th>Code</th>
<th>Department</th>
<th>level</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="course in courses | filter: adminfilter">
<td>{{course.name}}</td>
<td>{{course.code}}</td>
<td>{{course.department.name}}</td>
<td>{{course.level}}</td>
<td>
<button ng-click="register({{course._id}})" class="btn btn-info btn-xs">Register</button>
</td>
</tr>
</tbody>
</table>
</div
、ここでは、出力 Outout
すべてですうまくいきますが、登録ボタンがクリックされても何も起こりません。私が間違ってやったことは誰でも助けてくれますか?
NGクリック= ' "(course._id)を登録" とどこ'レジスタは 'のような補間を削除してください() 'メソッドを使用していますか? –
ここでは、 '$ http.get('/api/student/getcourses/'+ $ scope.studentid) .success(function(data){ $ scope.courses = data; $ scope.register = function (コース){ $ http.post( '/ api/student/courseReg /' + $ scope.studentid、course) .success(function(data){ console.log(data); }); } ; }) .error(function(e){ return e; }); ' – Emibrown
なぜあなたは$ http getコールの中でそれを定義しましたか?このようにして、この 'register()'メソッドを呼び出すことは決してありません。 –