我有一个多选表单控件,用户选择了很多选项,使用这些选项我需要在数据库中填写一个表,我需要为每个选中的项执行此操作,我使用了一个循环但有些如何只适用于最后选择的项目,我不知道我做错了什么部分:
app.ajoutProjet= function () {
for(var i=0;i<result.data.projetsListe.length;i++){
if(result.data.projetsListe[i].NomProjet==app.ajoutData.NomProjet){
app.ajoutData.projet_id=result.data.projetsListe[i].IdProjet;
}
}
var compteur=app.test.length;
var j=0;
do { app.ajoutData.col_id=app.test[j];
CP.createCP(app.ajoutData).then(function(result){
if(result.data.success==true){
console.log("the association result : " +result.data.CP);
}
});
j++
}while(j<compteur)
};
观点:
<label>Nom du projet:</label>
<input class="form-control" type="text" name="NomProjet" placeholder="Entrez le nom du projet" ng-model="ajouter.ajoutData.NomProjet">
<br>
<label>Les collaborateurs:</label><br>
<select multiple class="form-control" name="col_id" ng-model="ajouter.test">
<option ng-repeat="c in collaborateursListe" value="{{c.IdCollaborateur}}">{{c.NomCollaborateur}}</option>
</select>
帖子请求:
router.post('/ColProjet',function(req , res){
col_projet.Projet_col.sync({force: false}).then(function () {
return col_projet.Projet_col.create({
IdProjetCol : req.body.IdProjetCol,
col_id : req.body.col_id,
projet_id: req.body.projet_i});
服务:
createCP : function (ajoutData) {
return $http.post('/api/ColProjet',ajoutData);
}
我现在被困在这里一段时间,无法找出问题所在
答案 0 :(得分:1)
不清楚 app.ajoutData.NomProjet 的来源,但看起来您正在迭代 projetListe 中的每个项目,并指定应用。 aboutData.projet_id 到当前项的id。
for(var i=0;i<result.data.projetsListe.length;i++){
app.ajoutData.projet_id = result.data.projetsListe[i].IdProjet;
CP()位于if块中,检查 app.ajoutData.NomProjet 是否与当前项目中的相同。
if (result.data.projetsListe[i].NomProjet==app.ajoutData.NomProjet) {
由于 NomProjet 永远不会重新分配,只有 projet_id ,如果只有一个项目包含该名称,CP只会运行一次。