У меня есть две таблицы "Категория" и "Публикация" с отношением "Один ко многим".
Категория: идентификатор, имя, описание
Публикация: id, title, content, category_id
И мне нужно получить идентификатор категории через элемент select и поместить его в поле 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})
}