这个使用AngularJS的简单计算器应用有什么问题?

时间:2016-12-21 15:37:34

标签: angularjs

<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频道学习的。

app.js是链接到html文件的JavaScript文件,我尝试了所有内容,但它不起作用。

2 个答案:

答案 0 :(得分:1)

您在按钮上使用onclick而不是ng-click

所以你必须改变:

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

致:

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

<强> JSFiddle demo.

答案 1 :(得分:1)

这个html片段:

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

应该使用ng-click指令而不是按钮的onclick属性。