Javascript AngularJS-使用Select元素从另一个对象获取Id的表单

Javascript AngularJS-使用Select元素从另一个对象获取Id的表单,javascript,angularjs,Javascript,Angularjs,我有一个具有一对多关系的两个表类别和发布 类别:id、名称、描述 出版物:id、标题、内容、类别\u id 我需要通过select元素获得category id,并将其放入category_id字段中 出版表格: <form> <input type="text" ng-model="publication.title" placeholder="Title" /> <input type="text" ng-model="publication.conte

我有一个具有一对多关系的两个表类别和发布

类别:id、名称、描述

出版物:id、标题、内容、类别\u id

我需要通过select元素获得category id,并将其放入category_id字段中

出版表格:

<form>
  <input type="text" ng-model="publication.title" placeholder="Title" />
  <input type="text" ng-model="publication.content" placeholder="Content" />
  <!-- Here is my problem because I can list all categories but I can't get the category id and put it in the category_id field -->
  <div ng-init="categories()">
    <select class="form-control" ng-model="category" ng-options="category.name for category in categories">
        <option value="">-- Select category --</option>
    </select>
   </div>
</form>

我该怎么做呢?

就像下面的隐藏字段一样,您可以轻松地做到这一点

<select class="form-control" ng-change="getPubs()" ng-model="category" ng-options="category.name for category in categories">
    <option value="">-- Select category --</option>
</select>
<select class="form-control" ng-model="selected_pub" ng-options="pub.name for pub in publications">
    <option value="">-- Select Pub --</option>
</select>
    <form>
      <input type="text" ng-model="publication.title" placeholder="Title" />
      <input type="text" ng-model="publication.content" placeholder="Content" />
      <input type="hidden" ng-model="publication.category_id = category.id" />

      <div ng-init="categories()">
        <select class="form-control" ng-model="category" ng-options="category.name for category in categories">
            <option value="">-- Select category --</option>
        </select>
       </div>
    </form>

就像下面一个隐藏的字段,你可以很容易地做到这一点

    <form>
      <input type="text" ng-model="publication.title" placeholder="Title" />
      <input type="text" ng-model="publication.content" placeholder="Content" />
      <input type="hidden" ng-model="publication.category_id = category.id" />

      <div ng-init="categories()">
        <select class="form-control" ng-model="category" ng-options="category.name for category in categories">
            <option value="">-- Select category --</option>
        </select>
       </div>
    </form>

就像下面一个隐藏的字段,你可以很容易地做到这一点

    <form>
      <input type="text" ng-model="publication.title" placeholder="Title" />
      <input type="text" ng-model="publication.content" placeholder="Content" />
      <input type="hidden" ng-model="publication.category_id = category.id" />

      <div ng-init="categories()">
        <select class="form-control" ng-model="category" ng-options="category.name for category in categories">
            <option value="">-- Select category --</option>
        </select>
       </div>
    </form>

就像下面一个隐藏的字段,你可以很容易地做到这一点

    <form>
      <input type="text" ng-model="publication.title" placeholder="Title" />
      <input type="text" ng-model="publication.content" placeholder="Content" />
      <input type="hidden" ng-model="publication.category_id = category.id" />

      <div ng-init="categories()">
        <select class="form-control" ng-model="category" ng-options="category.name for category in categories">
            <option value="">-- Select category --</option>
        </select>
       </div>
    </form>


您需要使用类别的ID来筛选出版物选择,对吗?@爬行动物是的,我需要创建具有特定类别的出版物,然后筛选出版物。您需要使用类别的ID来筛选出版物选择,对吗?@爬行动物是的,我需要创建具有特定类别的出版物,然后过滤出版物。您需要使用类别的ID来过滤出版物选择,对吗?@是的,我需要创建具有特定类别的出版物,然后过滤出版物。您需要使用类别的ID来过滤出版物选择,正确吗?@是的,我需要创建一个具有特定类别的出版物,然后过滤出版物。看起来不错,但第一步是在出版物表单中为新出版物分配一个类别id。这就是为什么我试图通过select元素获取id,并将其放在category_id字段中。这是我现在不能做的。帮我做个小噩梦。我以为他们得先选一个?如果没有,可以预先选择一个,如$scope.category=$scope.categories[0]看起来不错,但第一步是在发布表单中为新发布分配一个类别id。这就是为什么我试图通过select元素获取id并将其放在category_id字段中。这是我现在不能做的。帮我做个小噩梦。我以为他们得先选一个?如果没有,可以预先选择一个,如$scope.category=$scope.categories[0]看起来不错,但第一步是在发布表单中为新发布分配一个类别id。这就是为什么我试图通过select元素获取id并将其放在category_id字段中。这是我现在不能做的。帮我做个小噩梦。我以为他们得先选一个?如果没有,可以预先选择一个,如$scope.category=$scope.categories[0]看起来不错,但第一步是在发布表单中为新发布分配一个类别id。这就是为什么我试图通过select元素获取id并将其放在category_id字段中。这是我现在不能做的。帮我做个小噩梦。我以为他们得先选一个?如果没有,可以预先选择一个,比如$scope.category=$scope.categories[0]谢谢你,但是我在控制台中有以下错误:[ngModel:nonassign]表达式'publication.category_id=category.id'是不可赋值的。我认为您使用的是AngularJS的旧版本。这应该适用于AngularJS 1.4.1,谢谢dude,但我在控制台中有以下错误:[ngModel:nonassign]表达式'publication.category_id=category.id'是不可赋值的。我认为您使用的是AngularJS的旧版本。这应该适用于AngularJS 1.4.1,谢谢dude,但我在控制台中有以下错误:[ngModel:nonassign]表达式'publication.category_id=category.id'是不可赋值的。我认为您使用的是AngularJS的旧版本。这应该适用于AngularJS 1.4.1,谢谢dude,但我在控制台中有以下错误:[ngModel:nonassign]表达式'publication.category_id=category.id'是不可赋值的。我认为您使用的是AngularJS的旧版本。这应该适用于AngularJS 1.4.1