【问题标题】:AngularJS orderBy expression with subtractionAngularJS orderBy 表达式与减法
【发布时间】:2016-01-27 08:13:31
【问题描述】:

我有一个表情

{{ product.SelectedProduct.BasePrice - product.SelectedProduct.Discount | currency  }}

我需要能够按 baseprice 的值订购我的产品 - 折扣。有没有办法做到这一点?所以我想要类似的东西

{{product.SelectedProduct.ProductName | 
orderBy : product.SelectedProduct.BasePrice - product.SelectedProduct.Discount }}

新代码:

<div class="row-fluid">
            <span class="mktpl_productnm" ng-show="product.SelectedProduct.ProductName">{{product.SelectedProduct.ProductName || 'product not available' | orderBy: price }}</span>
            <span ng-hide="product.SelectedProduct.ProductName" class="field-validation-error">Product not available</span>
            <span ng-show="product.SelectedProduct.remaining < product.SelectedProduct.prodterm.minQuantity" class="field-validation-error">
                (Out of stock)
            </span>
        </div>

 vm.price = function (product) {
        debugger;
        return product.SelectedProduct.BasePrice - product.SelectedProduct.Discount;
    };

【问题讨论】:

  • orderBy 与ng-repeat 一起使用——你是如何使用它的?
  • 创建自定义过滤器或为控制器或服务中的每个项目添加属性
  • 您也可以按功能过滤。 @Explosion Pills,orderBy 是常用的过滤器,仅此而已。
  • @ExplosionPills 我将它与产品列表一起使用。我没有写代码,我只是想编辑它。您需要我为我的问题添加更多代码吗?
  • stackoverflow.com/questions/16474091/… 或类似的,互联网上到处都是例子

标签: angularjs


【解决方案1】:

首先,您的示例没有多大意义:orderBy 适用于数组,用于对该数组的元素进行排序。但product.SelectedProduct.ProductName 可能不是数组。

第二:the documentation 说:

表达式函数()stringArray.)|string)>=

比较器用来确定元素顺序的谓词。

可以是以下之一:

function:getter 函数。此函数的结果将使用 运算符进行排序。 [...]

因此,您只需要一个作用域内的函数,该函数返回要比较的元素以与数组的给定元素进行比较:

$scope.reducedPrice = function(product) {
    return product.SelectedProduct.BasePrice - product.SelectedProduct.Discount;
};

在视图中:

{{ productArray | orderBy:reducedPrice }}

另一种选择是预先计算reducePrice并将其存储为属性或产品,然后简单地使用

{{ productArray | orderBy:'reducedPrice' }}

【讨论】:

  • JB 我在上面编辑了我的代码,向您展示我做了什么。它不工作。我错过了什么吗?感谢您的帮助
  • 是的,你错过了一些东西。 orderBy 用于对 array(在本例中为产品)的元素进行排序。但是您将其应用于一种产品的名称。这是没有意义的。这是我回答的第一句话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多