Мне нужно рассчитать сумму свойств объекта на входе пользователя. У меня есть функция настройки с часами, но я не получаю результат. У меня есть скрипка с тем, что у меня есть. рабочая скрипка
$scope.model = {}
function total() {
var totalNumber = 0;
totalNumber = totalNumber + $scope.model.minPrice + $scope.model.maxPrice + $scope.model.occup
return totalNumber;
};
$scope.$watch('model', function (newVal, oldVal) {
$scope.model.total = total();
console.log($scope.model.total)
}, true);
и скриншот консоли
Оператор +
перегружен для конкатенации строк.
Один из вариантов - передать ваши строки целым, используя parseInt()
прежде чем добавлять их. Вы можете использовать логический оператор OR, чтобы заботиться о NaN
. Это один из способов.
totalNumber = (parseInt($scope.model.minPrice) || 0)
+ (parseInt($scope.model.maxPrice) || 0)
+ (parseInt($scope.model.occup) || 0);
console.log($scope.model);
Это может быть просто, как это, хотя вам нужно будет фильтровать пустые и недопустимые значения.
$scope.$watch('model', function() {
$scope.model.total = parseInt($scope.model.minPrice)
+ parseInt($scope.model.maxPrice)
+ parseInt($scope.model.occup);
}, true);
undefined
. Вы, вероятно, хотите сделать некоторые проверки типов и преобразования