Angularjs Angular JS:将表单选择选项值传递给数据库不工作

Angularjs Angular JS:将表单选择选项值传递给数据库不工作,angularjs,Angularjs,我目前有一个带有的表单,选项如下。我试图将这些值传递到我的数据库中,但运行应用程序时,类别显示为未定义。表单正在使用ng controller=“eventCtrl” 表单选择代码如下 <div class="input-field col s5"> <select class="browser-default"> <option value="" disabled selected>Choose your category</option>

我目前有一个带有
的表单,选项如下。我试图将这些值传递到我的数据库中,但运行应用程序时,类别显示为未定义。表单正在使用ng controller=“eventCtrl”

表单选择代码如下

<div class="input-field col s5">
 <select class="browser-default">
  <option value="" disabled selected>Choose your category</option>
  <option value="Mountain" ng-model="category">Mountain</option>
  <option value="Forest" ng-model="category">Forest</option>
  <option value="Beach & Sea" ng-model="category">Beach & Sea</option>
  <option value="Fresh Water" ng-model="category">Fresh Water</option>
  <option value="Aero" ng-model="category">Aero</option>
  <option value="Desert" ng-model="category">Desert</option>
 </select>
</div>
angular.module('socialApp')
 .controller('eventCtrl', function($scope, $http) {
  $scope.createEvent = function() {
   $http.post('/events/createEvent', {
    title: $scope.title,
    category: $scope.category,
    city: $scope.city,
    state: $scope.state,
    date: $scope.date,
    time: $scope.time,
    description: $scope.description
  })
  .then(function(result) {
    console.log(result.data.status);
    console.log(result);
  })
 };
});

我很迷茫,请帮助我

属性
ng model
应位于
select
元素上,而不是每个
选项上,因此:

<div class="input-field col s5">
 <select class="browser-default" ng-model="category">
  <option value="" disabled selected>Choose your category</option>
  <option value="Mountain">Mountain</option>
  <option value="Forest">Forest</option>
  <option value="Beach & Sea">Beach & Sea</option>
  <option value="Fresh Water">Fresh Water</option>
  <option value="Aero">Aero</option>
  <option value="Desert">Desert</option>
 </select>
</div>

选择你的类别
山
森林
海滩与海洋
淡水
航空的
沙漠

我一定会查这个,因为它非常详细

属性
ng model
应位于
select
元素上,而不是每个
选项上,因此:

<div class="input-field col s5">
 <select class="browser-default" ng-model="category">
  <option value="" disabled selected>Choose your category</option>
  <option value="Mountain">Mountain</option>
  <option value="Forest">Forest</option>
  <option value="Beach & Sea">Beach & Sea</option>
  <option value="Fresh Water">Fresh Water</option>
  <option value="Aero">Aero</option>
  <option value="Desert">Desert</option>
 </select>
</div>

选择你的类别
山
森林
海滩与海洋
淡水
航空的
沙漠

我一定会查这个,因为它非常详细

考虑使用如下选项:

<select ng-model="category" 
        ng-options="obj as obj.name for obj in arrayOfObject" />

a as b语法允许您将a绑定到模型,同时显示b作为下拉标签


如果您需要在更改时获取值,请使用以下选项:

<select ng-model="category" 
        ng-options="obj as obj.name for obj in arrayOfObject" />

a as b语法允许您将a绑定到模型,同时显示b作为下拉标签


如果您需要得到更改的值,使用<代码> NG变更=“GETSCORDED值(类别)”

,请考虑使用<代码> NGOPTION>代码>指令:是的,<代码> NGOPTION/COD>指令非常值得考虑。就我个人而言,我使用静态HTML列表,如果它是a)一个长列表,b)不会改变的话。这是因为
ng选项
ng重复
可能会在很长的列表中出现性能问题@东洪金,如果这个或任何其他的未来答案解决你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。“没有义务这么做。”帕帕基亚——正如你所知,我在堆叠方面还是个傻瓜。谢谢你帮我解决这个问题,我真的很感激!另外,考虑使用<代码> NGOPTION/COD>指令:是的,<代码> NGOPTION>代码>指令是很好的考虑。就我个人而言,我使用静态HTML列表,如果它是a)一个长列表,b)不会改变的话。这是因为
ng选项
ng重复
可能会在很长的列表中出现性能问题@东洪金,如果这个或任何其他的未来答案解决你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。“没有义务这么做。”帕帕基亚——正如你所知,我在堆叠方面还是个傻瓜。谢谢你帮我解决这个问题,我真的很感激!