国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

angular用于計算一系列數據總和的filter

zorro / 3238人閱讀

摘要:我上網搜索的過程,發現了在我看來是比較優雅裝逼的做法,就是使用,代碼如下早餐午餐晚餐零食總額新增支出可以看到在點擊按鈕時,總額會實時更新,至此結束,謝謝觀看

目的:有個賬單數據,需要計算這些數據的總和

//index.js
function MainController($scope) {
  var vm = this;
  vm.sum = 0;
  vm.items = [
    {
      name: "早餐",
      money: 4
    },
    {
      name: "午餐",
      money: 13
    },
    {
      name: "晚餐",
      money: 13
    }
  ];

  vm.addItem = addItem;

  for (var i = vm.items.length - 1; i >= 0; i--) {
    vm.sum += parseInt(vm.items[i]["money"]);
  }

  function addItem() {
    var item = {
      name: "零食",
      money: 5
    };
    vm.items.push(item);
  }

  return vm;
}
// index.html

{{ sum }}

{{ item.name }} {{ item.money }}

只有在頁面刷新時,才能見到正確的賬單總額,但當我點擊按鈕添加新支出時,頁面的總額卻沒有更新,即便我使用$watch也無效,代碼如下:

$scope.$watch("vm.items", function() {
  for (var i = vm.items.length - 1; i >= 0; i--) {
    vm.sum += parseInt(vm.items[i]["money"]);
  }
});

調試可以發現,在頁面刷新的時候,會進入計算得到sum,但是當我添加新支出時,是不會進入計算sum的,原因我不得而知,且不論我寫的是否規范正確,如果你知道原因的,可以告訴我嗎,謝謝。

我上網搜索的過程,發現了在我看來是比較優雅(裝逼)的做法,就是使用filter,代碼如下:

//index.js
angular.module("deapp", [])
  .controller("MainController", ["$scope", MainController]);

function MainController($scope) {
  var vm = this;
  vm.items = [
    {
      name: "早餐",
      money: 4
    },
    {
      name: "午餐",
      money: 13
    },
    {
      name: "晚餐",
      money: 13
    }
  ];

  vm.addItem = addItem;

  function addItem() {
    var item = {
      name: "零食",
      money: 5
    };
    vm.items.push(item);
  }

  return vm;
}

//filter.js
angular.module("deapp")
.filter("sumOfItems", sumOfItems);

function sumOfItems() {
  return function(data, key){
    if(typeof(data) === undefined || typeof(key) === undefined ) {
      return 0;
    }

    var sum = 0,
        i = data.length - 1;

    for(; i >= 0; i--) {
      sum += parseInt(data[i][key]);
    }

    return sum;
  };
}
//index.html




  
  angularjs filter
  
  
  



  

總額:{{ vm.items | sumOfItems:"money" }}

{{ item.name }} {{ item.money }}

可以看到在點擊按鈕時,總額會實時更新,至此結束,謝謝觀看

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86100.html

相關文章

  • 細說數組常用遍歷方法

    摘要:需要返回值,如果不給,默認返回使用場景假定有一個數值數組將數組中的值以雙倍的形式放到數組寫法方法使用場景假定有一個對象數組將數中對象某個屬性的值存儲到數組中三從數組中找出所有符合指定條件的元素檢測數值元素,并返回符合條件所有元素的數組。 showImg(https://segmentfault.com/img/remote/1460000016810336?w=1149&h=524);...

    阿羅 評論0 收藏0
  • 細說數組常用遍歷方法

    摘要:需要返回值,如果不給,默認返回使用場景假定有一個數值數組將數組中的值以雙倍的形式放到數組寫法方法使用場景假定有一個對象數組將數中對象某個屬性的值存儲到數組中三從數組中找出所有符合指定條件的元素檢測數值元素,并返回符合條件所有元素的數組。 showImg(https://segmentfault.com/img/remote/1460000016810336?w=1149&h=524);...

    AlphaWatch 評論0 收藏0
  • 細說數組常用遍歷方法

    摘要:需要返回值,如果不給,默認返回使用場景假定有一個數值數組將數組中的值以雙倍的形式放到數組寫法方法使用場景假定有一個對象數組將數中對象某個屬性的值存儲到數組中三從數組中找出所有符合指定條件的元素檢測數值元素,并返回符合條件所有元素的數組。 showImg(https://segmentfault.com/img/remote/1460000016810336?w=1149&h=524);...

    ?xiaoxiao, 評論0 收藏0
  • 樂字節-Java8新特性之Stream流(下)

    摘要:歸約操作計算有效訂單總金額有效訂單總金額收集數據收集將流轉換為其他形式,方法作為終端操作,接收一個接口的實現,用于給中元素做匯總的方法。 接上一篇:《Java8新特性之stream》,下面繼續接著講Stream 5、流的中間操作 常見的流的中間操作,歸為以下三大類:篩選和切片流操作、元素映射操作、元素排序操作:showImg(https://segmentfault.com/img/b...

    20171112 評論0 收藏0

發表評論

0條評論

zorro

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<