1

我正在构建我的第一个应用程序。这是一个订购系统,客户可以在其中将商品添加到购物车中。一切运作良好。但是,我的客户想要一种方法来提醒客户,如果他们尝试向购物车中添加大于当前库存的数量。

我的客户不想显示库存水平,除非客户添加的东西大于可用库存。

我有一张桌子,每行都有库存物品。我想做三件事,如果库存水平大于可用库存,我想更改: • 表格行上的类 • 将禁用的类添加到提交 • 显示一个包含可用库存的 div。

为了让事情变得更有趣,顾客必须按包订购,而不是按单件订购。

基本上,我试图让以下代码工作:

这是一般标记:

<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">

outOfStock是 CSS 中的类。

顺便提一句,

<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 回答