我是Angularjs的新人,我正在开发一种购物车 我有和阵列:
$scope.products = [
{id: '141', name: 'Apple', qty:0},
{id: '223', name: 'Orange', qty:0},
{id: '398', name: 'Banana', qty:0}];
根据设计限制,我需要做类似
的事情<input type="text" ng-model="products[productID].qty"/>
(我不能使用数组元素索引,我知道它有效。)
我也试过
ng-model="(p in products | filter: {id:'223'}).qty"
但我无法使其发挥作用
请你能帮帮我吗?
我会解释我的购物车 让我们想象一下,我需要一个大小的列表:s,m,l,xl 在行模型中,但是有各种尺寸的模型,所以我将在每个单元格中输入一个输入,但是有一些只在l和xl中,而在s和m中有一些 所以我将有一个包含一些空单元格的表格。 我知道我可以有一个表作为元数据,我可以定义列,行和映射,然后开发一个指令。我的想法是用HTML设计表格并为每个单元格分配productID
答案 0 :(得分:1)
基本上你将不得不从数组中选择id,所以在你的指令/控制器中写下这样的东西:
$scope.getProduct = function(id) {
var product;
angular.forEach($scope.products, function(p) {
if(p.id === id) {
product = p;
}
});
return product;
};
然后:
$scope.selectedProduct = $scope.getProduct('223');
然后在你的html:
<input ng-model="selectedProduct.qty"/>
编辑:我不知道这是不是你在说什么,但现在就去了。 (你确实知道ngRepeat
对吗?):
<table>
<thead>... stuff</thead>
<tbody>
<tr ng-repeat="product in products">
<td ng-bind="product.id"></td>
<!-- bind other stuff here -->
<td>
<input ng-model="product.qty"/>
</td>
</tr>
</tbody>
</table>