私は角度のある簡単なショッピングカートをしようとしています。基本的に私はアイテムのリストを持っていて、ユーザーがQuantityを入力して0より大きい数量を持つアイテムのリストを取得したいと考えています。ng-repeatの入力値を角度で取得する方法
Qtyが0より大きい場合は、それを削除します。
私はQtyを正しく得ることができない何か間違ったことをしているに違いありません。
初めて動作しますが、2度目は更新されません。
マイコントローラ:
var extras1 = {Id:1,PackageName:"Balloons",Description:'Pack of 6',Cost:'$50.00',Qty:0}
var extras2 = {Id:2,PackageName:"Hot Chips",Description:'Fresh fried hot chips fully of yummy fat and cholesterol.',Cost:'$10.00',Qty:0}
var extras3 = {Id:3,PackageName:"Sausages",Description:'Hot sausages from premium offcuts',Cost:'$10.00',Qty:0}
$scope.extras =[extras1,extras2,extras3];
$scope.extraSelected = function(){
$scope.selectedExtra =[];
angular.forEach($scope.extras, function(extra)
{
if(extra.Qty > 0)
{
console.log('Extra added');
$scope.selectedExtra.push(extra);
}
})
console.log($scope.selectedExtra);
}
マークアップ:あなたは余分なパラメータが渡されたとされているものとして定義されている
<div ng-repeat="extra in extras" class="text-left">
<div class="row-centered">
<div class="row form-group">
<label class="col-md-1 col-sm-offset-1 step1-question" >{{$index + 1}}</label>
<div class="col-md-8">
<span class="h4 step1-answer"> {{ extra.PackageName}} </span>
<br/>
<span class="h5"> {{ extra.Description}} </span>
<br/>
<span class="h5"> {{ extra.Cost}} </span>
</div>
<div class="col-md-1">
<input type='text' class="form-control step1-answer text-center "
ng-model="extra.Qty"
placeholder="0" style="background-color:#ffffff;padding: 5px;height: 45px;"
ng-change="extraSelected(extra)"
/>
</div>
</div>
<hr/>
</div>
</div>
コンソールログを追加できますか? –
非常に奇妙なコード、特にsliceを呼び出すとき。 '$ scope.selectedExtra = [];'を実行しているので、項目の配列を取得したい場合は、項目を削除する必要はありません。 –
–