1

私は最初のアプリを構築しています。お客様がカートに商品を追加できる注文システムです。すべてがうまくいっています。しかし、私のクライアントは、顧客が現在の在庫を超える数量をカートに追加しようとした場合に顧客に警告する方法を望んでいます.

私のクライアントは、顧客が利用可能な在庫よりも大きなものを追加しない限り、在庫レベルを表示したくありません.

各行に在庫商品があるテーブルがあります。在庫レベルが利用可能な在庫よりも大きい場合は、次の 3 つのことを行いたいと考えています。

さらに興味深いことに、顧客は個々の商品ではなくパック単位で注文する必要があります。

基本的に、次のコードを機能させようとしています。

これは一般的なマークアップです:

<tr ng-repeat="series_detail in productDetail | filter:filter">
   <td>{{series_detail.sku}}</td>
   <td>{{series_detail.size}}</td>
   <td>{{series_detail.price</td>
   <td>{{series_detail.pack}}</td>
   <td ng-model="totalitems" ng-init="0">{{qty * series_detail.pack | number}}</td>
   <td><span class="itemtotal">{{series_detail.price * qty | number:2}}</span></td>                           

   <td class="form-inline" style="text-align:right;">
       <input type="submit" class="add_to_cart_submit btn btn-danger btn-small" value="Add">
   </td>
</tr>

次に、このdivを表示したい

<div ng-show="'{{totalitems}}' > '{{series_detail.stock}}'">Yo, no stock dude</div>

モデル「totalitems」を行に追加してから、ngShow を使用してポップアップさせようとしました。ただし、「totalitems」は何も評価していないようです。他のいくつかのオプションを試しましたが、何も機能しませんでした (ngIF など)。

クラスの変更に関しては、これをソートしたら、式をngClassに転送できると思いますか?私はこれで遊んでいますが、これまでのところ何も機能していません。

4

2 に答える 2

3

この行が ng-repeat 内にある場合:

<div ng-show="qty * series_detail.pack > series_detail.stock">Yo, no stock dude</div>

クラス表示については、tr で言うと、次のように同じ式を使用できます。

<tr ng-class="{outOfStock: (qty * series_detail.pack > series_detail.stock)}" ng-repeat="series_detail in productDetail | filter:filter">

outOfStockCSS のクラスです。

ところで、

<td ng-model="totalitems" ng-init="0">{{qty * series_detail.pack | number}}</td>

に評価さtotalitemsれるものには設定されません。{{qty * series_detail.pack | number}}

モデルで本当に必要な場合totalItems、可能なオプションはseries_detailインスタンスにメソッドを持つことです

objRef.totalItems = function(qty) {
    return qty * this.pack;
}

そしてそれを次のように使用します:

<div ng-show="series_detail.totalItems(qty) > series_detail.stock">Yo, no stock dude</div>

<td>{{series_detail.totalItems(qty) | number}}</td>
于 2013-11-05T14:33:56.240 に答える
2

すべてを理解できるとは限りませんが、このようなものは機能するはずですか?

<div ng-show="isStockAddedGreaterThanAvailable()">{{series_detail.stock}} Yo, no stock dude </div> 

そしてあなたのコントローラーで

 $scope.isStockAddedGreaterThanAvailable = function(){
   ....
}
于 2013-11-05T14:24:27.027 に答える