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



我有两个具有一对多关系的表"Category"one_answers"Publication"。

类别:id、名称、描述

发布:id,title,content,category_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>

这是我的控制器获得所有类别:

$scope.categories = function() {
    $http(
            {
                method : 'GET',
                url : '/prodemo/category'
            }).success(
                    function(data, status, headers, config) {
                        $scope.categories = data;
            }).error(
                    function(data, status, headers, config) {
            });
};

我该怎么做?

类似于下面的隐藏字段,您可以轻松完成

    <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>
<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>

在控制器中:

$scope.getPubs = function () {
   //or whatever the URL for filtering publications by catagory_id
   $http.get('/prodemo/publications/' +  $scope.category.id)
     .then(function (resp) { $scope.publications = resp})
}

最新更新