2017-07-04 13 views
1

を埋めます。 だから私は、キーボードで入力値を埋めることができない、また、私は2つのエラー([ngModel:nonassign]を持って、私はページをロードするとき、私は、キーボードで入力された値を埋めるためにしようとしていたときに -angularjs入力簡単な電卓を作るが、いくつかの問題を持ってしようとしている問題

これを。 $$ ngModelSetが機能

ではない私は誰かが私を助けることができると思います。

<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]; 
}; 

    }); 

答えて

1

あなたはNG-モデル内の変数アサインを入れていなかったので、あなたはそのエラーを取得します。 のでng-model="formula.join('')"を変更します私たちにEA変数:例:ng-model="total"

とあなたのコントローラで、各計算のために、ちょうど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(''); 
    }; 
+0

私はそれに私のコードを変更しましたが、それはかかわらず、正常に動作しdoesntの私はキーボードによって何かを入力したとき、私は、ボタンを入力すると、今そのようなタブにある2つの異なる値が、私は意味、そこだけ値(キーボード)を非表示にして、私を示し、ボタンで入力した値は、それが再び変更し、私の値を示し、壊れた英語のため申し訳ありませんbuttonsmで、私は大丈夫、と入力してみてください、あなたは私がこのplnkrで – shoopik

+0

を見て何を意味するのか理解してほしいとあなたがそこhttp://plnkr.co/edit/Ab1XEIRHcDOk1WJbWKMJ?p=preview – Fetrarij

+0

から欲しい何をすべきかを教えて入力w i番目の「123」のようなキーボードの何かと(例えば、567のための)いくつかのボタンを入力すると、あなたが入力フィールドに567が表示され、i)は、2貴様欄にそのいけない除算をしたいあなたは私の考えを持って願っています) – shoopik

関連する問題