尝试制作一个简单的计算器,但遇到一些问题。 所以我无法通过键盘填充输入值,而且我还有两个错误([ngModel:nonassign] 当我加载页面时,以及当我尝试通过键盘填充输入值时 -
this.$$ngModelSet is not a function
希望有人能帮助我。
<div class="container" ng-controller="calcCtrl">
<div class="content">
<br><br><br>
<input type="text" ng-model="formula.join('')" ></input>
<br><br><span class="content_tab tab"></span> <br>
<button ng-click='add(7)'>7</button>
<button ng-click='add(8)'>8</button>
<button ng-click='add(9)'>9</button>
<button ng-click='add("/")'>/</button>
<br>
<button ng-click='add(4)'>4</button>
<button ng-click='add(5)'>5</button>
<button ng-click='add(6)'>6</button>
<button ng-click='add("*")'>*</button>
<br>
<button ng-click='add(1)'>1</button></td>
<button ng-click='add(2)'>2</button></td>
<button ng-click='add(3)'>3</button></td>
<button ng-click='add("-")'>-</button></td>
<br>
<button ng-click='add(0)'>0</button>
<button ng-click='add(".")'>.</button>
<td rowspan='2'><button ng-click='add("+")'>+</button>
<button ng-click="eval()">=</button>
<br>
<button ng-click="remove()">CLEAR</button>
</div>
app.controller('calcCtrl', function($scope) {
$scope.formula = ['0'];
$scope.add = function(item) {
if ($scope.formula == '0') $scope.formula = [item];
else $scope.formula.push(item);
};
$scope.remove = function() {
$scope.formula.pop();
if($scope.formula.length == 0) $scope.formula = ['0'];
};
$scope.eval = function() {
var result = eval($scope.formula.join(''));
$scope.formula = [result];
};
});
最佳答案
您收到该错误是因为您没有将可分配的变量放入 ng-model 中。
因此,更改 ng-model="formula.join('')"
以使用变量:例如:ng-model="total"
在您的 Controller 中,对于每个计算,只需将此变量分配给 Formula.join('')
$scope.add = function(item) {
if ($scope.formula == '0') $scope.formula = [item];
else $scope.formula.push(item);
$scope.total = $scope.formula.join('');
};
$scope.remove = function() {
$scope.formula.pop();
if ($scope.formula.length == 0) $scope.formula = ['0'];
$scope.total = $scope.formula.join('');
};
$scope.eval = function() {
var result = eval($scope.formula.join(''));
$scope.formula = [result];
$scope.total = $scope.formula.join('');
};
关于javascript - angularjs输入填充问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910848/