我在ng-model="award.questions.propertyName"
上有一些文本区域。我需要将这些输入值放入具有以下结构的数组中:
questions: [{
key: value,
key: value,
...
}]
但是console.log
会在我提交表单时返回未定义的值。
当我将问题定义为对象{}
时,它就像是一种魅力,并且所有值都很好,但是当我将其放在数组中时,则无济于事。
查看
<textarea name="short-Description" ng-model="award.questions.shortDescription"></textarea>
<textarea name="consumer" ng-model="award.questions.consumer"></textarea>
<textarea name="advantages" ng-model="award.questions.advantages"></textarea>
控制器
$scope.award = {
questions: [{
shortDescription: $scope.shortDescription,
consumer: $scope.consumer,
advantages: $scope.advantages,
}],
};
$scope.onSubmit = (award, awardForm) => {
$scope.data = angular.copy(award);
console.log($scope.data);
}
答案 0 :(得分:1)
因为您的award
变量没有question
属性。
您应该将代码更改为:
<textarea name="short-Description" ng-model="award.questions[0].shortDescription"></textarea>
<textarea name="consumer" ng-model="award.questions[0].consumer"></textarea>
<textarea name="advantages" ng-model="award.questions[0].advantages"></textarea>
如果您有多个问题,也可以使用ng-repeat
:
<div ng-repeat="question in award.questions track by $index">
<textarea name="short-Description" ng-model="question.shortDescription"></textarea>
<textarea name="consumer" ng-model="question.consumer"></textarea>
<textarea name="advantages" ng-model="question.advantages"></textarea>
</div>
答案 1 :(得分:0)
award.questions
是一个数组-因此它没有名为consumer
的属性或任何其他变量(请注意,它是questions
而不是question
)。使用[0]
获取数组中的第一项。
<textarea name="short-Description" ng-model="award.questions[0].shortDescription"></textarea>
但是,使用这种格式,使用一个对象会更容易。查看:
<textarea name="short-Description" ng-model="award.question.shortDescription"></textarea>
控制器:
$scope.award = {
questions: {
key: value,
...
}
}