オブジェクトとそのネストされたオブジェクトを保存するためにpushメソッドを使用しようとしましたが、リストに少し問題があります。AngularJS:push()メソッドListオブジェクトとそのネストされたオブジェクト
私は 'Products'と 'Category'を持っていますが、フォームに入力して 'Save'を押して 'Product 6'オブジェクトを保存すると、 'Category name'はリストに表示されません私はページをリロードする必要があります。
ご覧のとおり、カテゴリ名は空です。私はプッシュ方式を使用して、オブジェクトとそのネストされたオブジェクトを一覧表示することができますどのように
?
フォーム登録
<form name="newProductForm">
<div class="form-group">
<label for="name">Name</label>
<input type="text" data-ng-model="product.name" class="form-control" id="name" placeholder="Name" />
</div>
<div class="form-group">
<label for="quantity">Quantity</label>
<input type="number" data-ng-model="product.quantity" class="form-control" id="quantity" placeholder="Quantity" />
</div>
<div class="form-group">
<label data-for="category">Category:</label>
<select data-ng-model="product.category.id" class="form form-control">
<option value="">--Select category--</option>
<option data-ng-repeat="category in categories" value="{{category.id}}">{{category.name}}</option>
</select>
</div>
<button type="submit" class="btn btn-primary" data-ng-click="addProduct(product)">Save</button>
</form>
製品一覧
<table class="table table-bordered">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Category</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="product in products">
<td>{{$index+1}}</td>
<td>{{product.name}}</td>
<td>{{product.category.name}}</td>
<td>{{product.quantity}}</td>
</tr>
</tbody>
</table>
サービスとコントローラ
.controller("productsController", function($scope, $http, addProductService, listProductsService, listCategoriesService){
$scope.addProduct = function(product){
var newProduct = addProductService.createProduct($scope.product);
$scope.products.push(newProduct);
};
$scope.products = listProductsService.query();
$scope.categories = listCategoriesService.query();
})
.factory("addProductService", function($resource){
return $resource("product", {}, {
createProduct: {
method: "POST"
}
})
})
.factory("listProductsService", function($resource){
return $resource("product", {}, {
listProducts: {
method: "GET"
}
})
})
'addProductService.createProduct()'とは何ですか?それはすぐに価値を返すのか、それとも約束の結果を返すのでしょうか?あなたが 'createProduct()'を呼び出す行の下に 'console.log(newProduct)'を置くと、コンソールに 'undefined'が出ますか? – Lex
@wilson、Products Listテーブルのhtmlを表示してください。 –
@big_water確かに、質問は既に更新されました – wilson