javascript - angularjs输入填充问题

标签 javascript angularjs

尝试制作一个简单的计算器,但遇到一些问题。 所以我无法通过键盘填充输入值,而且我还有两个错误([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/

相关文章:

html - 使用 Angular 和 angular-responsive-tables 的响应表

javascript - 使用父 ng-repeat 中的键过滤 ng-repeat

javascript - 如何在 ngx-translate 中使用带有服务 url 的 TranslateHttpLoader

javascript - 如何通过单击和使用 vanilla js 更改 div 的图标?

javascript - scope.$watch() 在输入键按下或 location.path 工作后未触发

javascript - Angular : updating view with value passed from directive to controller

javascript - JQuery 从两个表中拖放

javascript - React Context Api 与本地存储

javascript - 在滚动条上缩放 div 内容

javascript - 在 html 中显示短语的前 4 个单词