как получить сумму в объеме? - PullRequest
0 голосов
/ 08 июля 2019

как суммировать значение внутри Scope и сохранять в другую переменную области?

$scope.cart = {
   { name: bag , price : 2000 },
   { name: shoes, price : 3000}
}

Я хочу сохранить сумму в $ scope.pay

как туда добраться?

Ответы [ 3 ]

0 голосов
/ 08 июля 2019
$scope.cart = [
 { name: 'bag' , price : 2000 },
 { name: 'shoes', price : 3000}
];

$scope.pay = $scope.cart.reduce((accumulator, currentValue) => accumulator.price + currentValue.price);

Корзина должна быть массивом.Используйте функцию уменьшить, чтобы получить сумму.Больше информации здесь - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

0 голосов
/ 08 июля 2019

Простым решением для этого является использование parseInt для добавления двух и сохранения его в новой переменной области.

Angular JS File:

var myApp = angular.module('myApp', []);
myApp.controller("myCtrl", function ($scope) {
    $scope.sum = function (price1, price2) {
        $scope.pay = parseInt(price1) + parseInt(price2);
    }
});

Файл HTML:

<body>
    <div ng-app = "myApp" ng-controller = "myCtrl">
        Enter First Number:<input type = "text" ng-model = "price1" />
        <br />
        Enter Second Number:<input type = "text" ng-model = "price2" />
        <br />
        <input type = "button" value = "Add" ng-click = "sum(price1, price2)" />
        Total : pay <input type = "text" ng-model = "pay" />
    </div>
</body>

Обновление 1: Кстати.$ scope.cart должен быть массивом, и для доступа к каждой цене вы должны использовать ng-repeat.

$scope.cart = [
    {name:'bag', price : 2000},
    {name:'shoes', price : 3000}
    ];
0 голосов
/ 08 июля 2019

Учитывая, что $scope.cart должно быть array, вы можете использовать Array.prototype.reduce ()

$scope.cart = [{name: 'bag',price: 2000},{name: 'shoes',price: 3000}];
$scope.pay = $scope.cart.reduce((a, c) => c.price + a.price);

Пример кода:

const $scope = {};
$scope.cart = [{name: 'bag',price: 2000},{name: 'shoes',price: 3000}];
$scope.pay = $scope.cart.reduce((a, c) => c.price + a.price);

console.log($scope.pay);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...