2016-12-21 17 views
0
<html ng-app="Myapp"> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
     <script src="app.js"></script> 
    <head> 
    <body> 
     <h1>Calculator App </h1> 
     <div ng-controller="myCtrl as ctrl"> 
      <input type="text" ng-model="ctrl.input1" ></input> 
      <span ng-bind="ctrl.selectedOperation"></span> 
      <input type="text" ng-model="ctrl.input2" ></input> 
      <button onclick="ctrl.compute()">=</button> 
      <span ng-bind="ctrl.resultValue"></span> 

      <p> 
       <button ng-click="ctrl.ButtonClicked('+')">+</button> 
       <button ng-click="ctrl.ButtonClicked('-')">-</button> 
       <button ng-click="ctrl.ButtonClicked('*')">*</button> 
       <button ng-click="ctrl.ButtonClicked('/')">/</button> 
      </p> 

     </div>  
    <body>    
</html>  

app.js:------ 

var app = angular.module("Myapp",[]); 

app.controller("myCtrl",myCtrl); 

function myCtrl(){ 
    this.resultValue = 0; 

    this.ButtonClicked = function(button){ 
    this.selectedOperation = button; 
    } 
    this.compute = function(){ 


     var number1 = parseFloat(this.input1); 
     var number2 = parseFloat(this.input2); 

     if(this.selectedOperation ==='+') 
     { 
      this.resultValue = number1 + number2; 

     }else if(this.selectedOperation ==='-') 
     { 
      this.resultValue = number1 - number2; 

     }else if(this.selectedOperation ==='*') 
     { 
      this.resultValue = number1 * number2; 

     }else if(this.selectedOperation ==='/') 
     { 
      this.resultValue = number1/number2; 
     } 

    } 
} 

私はAngular JSの初心者です。私はJava BrainsのYouTubeチャンネルから学んでいます。AngularJSを使用したこの単純な電卓アプリで何が問題になっていますか?

app.jsはHTMLファイルにリンクされたJavaScriptファイルですが、すべてを試しましたが動作しません。

+0

作業していないと言うと、どうやって動作しないのですか?何のデバッグをしましたか? – Draken

+0

答えがあなたの問題を解決しましたか? – Mistalis

答えて

1

このHTMLフラグメント:

<button onclick="ctrl.compute()">=</button> 

は、ボタンのonclickプロパティの代わりにng-clickディレクティブを使用する必要があります。

1

ng-clickの代わりにonclickをボタンに使用しています。

だから、あなただけ変更する必要があります:

<button onclick="ctrl.compute()">=</button> 

へ:

<button ng-click="ctrl.compute()">=</button> 

JSFiddle demo.

関連する問題