2017-12-15 22 views
0

私は単純なカートシステムをやっています。anglejs内のオブジェクトからデータをフェッチする方法は?

すべての商品の横にカートに追加ボタンが付いた商品を表示するための表を作成しました。ボタンをクリックするとすべての製品のインデックスを取得できましたが、オブジェクト内のデータ(名前、価格、および数量)をフェッチできません。助けてください!どうすれば入手できますか?ありがとう。

<script> 
 
    var app = angular.module("shoppingCart", []); 
 
app.controller("cartCtrl", function($scope) { 
 
    $scope.products = [{ 
 
     id: 1, 
 
     name: 'Baby Mix Lobster (300g - down)', 
 
     unit: 'per kg', 
 
     price: 2500, 
 
     qty: 1 
 
    }, 
 
    { 
 
     id: 2, 
 
     name: 'Tiger Lobster (1kg - up)', 
 
     unit: 'per kg', 
 
     price: 5800, 
 
     qty: 1 
 
    }, 
 
    { 
 
     id: 3, 
 
     name: 'Tiger Lobster (700g - 999g)', 
 
     unit: 'per kg', 
 
     price: 4500, 
 
     qty: 1 
 
    }, 
 
    { 
 
     id: 4, 
 
     name: 'Tiger Lobster (500g-699g)', 
 
     unit: 'per kg', 
 
     price: 4200, 
 
     qty: 1 
 
    }, 
 
    { 
 
     id: 5, 
 
     name: 'Tiger Lobster (300g-499g)', 
 
     unit: 'per kg', 
 
     price: 3900, 
 
     qty: 1 
 
    }, 
 

 
    ]; 
 

 

 

 

 
    $scope.addToCart = function(item) { 
 

 
    alert(item); 
 

 
    } 
 

 

 

 
}); 
 

 
< 
 
/script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 

 

 

 
    <table style="border: 1px solid black"> 
 
    <tr> 
 
     <th></th> 
 
     <th>name</th> 
 
     <th>unit</th> 
 
     <th>price</th> 
 
     <th>Qty</th> 
 
     <th></th> 
 
    </tr> 
 
    <tr ng-repeat="x in products"> 
 
     <td>{{$index + 1}}</td> 
 
     <td>{{x.name}}</td> 
 
     <td>{{x.unit}}</td> 
 
     <td>{{x.price | currency: "Php " : 2}}</td> 
 
     <td><input type="number" min="1" placeholder="{{x.qty}}" /></td> 
 
     <td><button ng-click="addToCart($index)">Add to Cart</button></td> 
 

 
    </tr> 
 
    </table> 
 
</div>

+0

あなたはID番号ではなく、任意の増分インデックスに基づいてカートに追加しませんか? –

答えて

0

あなたがインデックスを取得することができるならば、なぜ配列からオブジェクトをフェッチしない代わりにindex

ng-click="addToCart(x)" 
+0

私はインデックスを使用してデータを取得しようとしていました。 Heheh。あなたのソリューションはあまりにも人間の仕事、多くのありがとう! – Kkk

+0

@Kkk問題ありません。これが役に立ったならば、答えとしてチェックしてください。 –

0

の項目xに合格する必要がありますか?

$scope.addToCart = function(index) { 
    var item = $scope.products[index]; 
    // access the properties of `item` here. 
} 

また、ng-repeatのアイテムを追跡することをお勧めします。

ng-repeat="x in products track by $index" 
+0

私はそれを変数に入れなければならないことを知らなかった。私はこのように直接フェッチしています $ scope.addToCart = function(index){ $ scope.products.name [item]; } ありがとうたくさんの男!あなたのソリューションは機能します。今すぐデータを取得できます。 – Kkk

関連する問題