使用Angular JS将Total Integer拆分为两个字段

时间:2016-10-15 20:27:45

标签: javascript angularjs

我创建了3个输入类型编号,它基本上是两个值的相加以获得总数。我的挑战是当我在总和中输入一个值时;我希望它自动分成两个输入字段。 例如#1: 9 #2: 3 #Total:12 如果用户编辑了Total,可能值为100,那么我应该有#1: 15 #2: 5 #Total:20

注意:可以编辑数字1和数字2以仅提供总和,但是当编辑总和时,它应分为数字1和数字2。

HTML:

<div ng-app="myApp" ng-controller="addvalue">

<p>Input something in the input box:</p>
<p>Number 1: <input type="number" ng-change="update()" ng-model="firstNumber"></p>
<p>Number 2: <input type="number" ng-change="update()" ng-model="secondNumber"></p>
<p>Total Sum: <input type="number" ng-change="update()" ng-model="total">{{total}}</p>
</div>

JAVASCRIPT:

var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {

$scope.$watch('one + two + three', function(value) {
$scope.total = value;
});
$scope.change = function() {
  if (istotal) {
    $scope.firstNumber = $scope.total / 2;
    $scope.secondNumber = $scope.total / 4;
  } else {
    $scope.total = $scope.firstNumber + $scope.secondNumber;
  }
}

});

1 个答案:

答案 0 :(得分:1)

尝试在update()中传递boolean参数。 如果是1号和2号,请将其保留为ng-change = "update(false)"。 总计为ng-change = "update(true)"。 在控制器中。

$scope.update(isTotal) {
    if(istotal) { 
        $scope.firstNumber = 3 * $scope.total / 4;
        $scope.secondNumber = 1 * $scope.total / 4;
    } else {
        $scope.total = $scope.firstNumber + $scope.secondNumber;
    }
}