У меня проблемы с некоторыми частями моего кода случайно.
Этот объект объявлен в angular controller
.
this.tData = {
'questions':[],
'typeQuestion':[],
'category':[],
'dName':this.dName,
'tCodigo':this.tCodigo}
Затем я получил некоторые данные из других функций и вставил их в соответствующие поля,
this.tData.questions.push(this.idQuestion) // this come from frontend ng-model
this.tData.typeQuestion.push(this.typeQuest) // this come from frontend ng-model
this.tData.category.push(this.idCategory)// this come from frontend ng-model
Это отлично сконструирует мой объект. console.log(this.tData)
покажет мне объект совершенно нормально. Но потом, когда я передаю его бэкэнду в этой функции angular service
.
this.updateStuff = function(codStuff,tData){
return $http.put('/updateStuff' + codStuff,tData)}
Объект, который выполняет бэкэнд console.log(params)
, является
{
questions:['exampleId'],
typeQuestion:['exampleData'],
category:[], // HERE IS THE PROBLEM
dName:'exampleName',
tCodigo:'exampleCod'}
Как вы видите, category:[]
пуст, но делает console.log(tData)
на службе angular
, прежде чем отправить его, и вижу там правильные данные.
Я пропускаю данные, когда отправляю их на сервер. Эта проблема случилась со мной в трех других подобных случаях.
Почему некоторые массивы хороши в бэкенде, а другие нет?
Я много чего перепробовал, но когда-либо 1 предмет объекта, который я отправлял на сервер, становился пустым.
Если вам нужен более конкретный код, сообщите мне в комментариях.
Обновление
Код здесь я нажимаю категорию в контроллере:
this.getCategoryByName = function(){
this.bName = document.getElementById('seCategory').value;
Category.getCategoryByName(this.bName).then((result)=>{
this.idCategory = result.data.data._id; // this give me id of category
this.tData.category.push(this.idCategory);
})
}
2
Здесь я вызываю свои функции:
<button class="btn btn-primary" ng-click="ctController.getCategoryByName(); ctController.updateTest();" > up </button>
Это код функции updateTest ():
this.updateTest = function(){
Test.updateTest(this.codTest,this.tData).then(result=>{})
}
Выше метода вызовите angular service
updateStuff
решаемые
Решено добавление цепочки обещаний в метод getCategoryByName и добавление метода updateTest (), вложенного в метод getCategoryByName (), более или менее похожий на @ T.J. Crowder Sugest, поэтому я даю ему ответ.