Условия в моем условии if в файле js игнорируются, хотя я принудительно изменил переменную в конце функции - PullRequest
0 голосов
/ 28 ноября 2018
var app = angular.module("calculatorApp", []);

app.controller("CalculatorCtrl", CalculatorCtrl);

function CalculatorCtrl() {
    pleaseWork = null;
    this.buttonClicked = function(button) {
        if (pleaseWork = null)
        {
            this.secondNumber = button;
            pleaseWork = "I don't know why this won't work."
        } else {
            this.firstNumber = button;
        }
    }
    this.opButtonClicked = function(opButton) {
        this.operationType = opButton;
    }
    this.equalButtonClicked = function() {
        var firstNumber= parseFloat(this.firstNumber);
        var secondNumber= parseFloat(this.secondNumber);
        if (operationType === '+') {
            this.equalButtonClicked = firstNumber + secondNumber;
        }
        if (operationType === '-') {
            this.equalButtonClicked = firstNumber - secondNumber;
        }
        if (operationType === '*') {
            this.equalButtonClicked = firstNumber * secondNumber;
        }
        if (operationType === '/') {
            this.equalButtonClicked = firstNumber / secondNumber;
        }
    }
}
<html ng-app="calculatorApp">
    <head>
        <title>Calculator</title>
        <script src="angular.js"></script>
        <script src="app.js"></script>    
    </head>

    <body>
        <h1>Midterm Calculator</h1>
        <div ng-controller = "CalculatorCtrl as ctrl">
            <p>
                <span ng-bind="ctrl.firstNumber"></span>
                <span ng-bind="ctrl.operationType"></span>
                <span ng-bind="ctrl.secondNumber"></span>
            </p>
            <p>
                <input type="text" value="{{solution}}" readonly/>
            </p>
            <p>
                <button ng-click="ctrl.buttonClicked('1')">1</button>
                <button ng-click="ctrl.buttonClicked('2')">2</button>
                <button ng-click="ctrl.buttonClicked('3')">3</button>
            </p>
            <p>
                <button ng-click="ctrl.buttonClicked('4')">4</button>
                <button ng-click="ctrl.buttonClicked('5')">5</button>
                <button ng-click="ctrl.buttonClicked('6')">6</button>
            </p>
            <p>
                <button ng-click="ctrl.buttonClicked('7')">7</button>
                <button ng-click="ctrl.buttonClicked('8')">8</button>
                <button ng-click="ctrl.buttonClicked('9')">9</button>
            </p>
            <p>
                <button ng-click="ctrl.buttonClicked('0')" >0</button>
                <button ng-click="ctrl.equalButtonClicked()">=</button>
                <button ng-click="ctrl.opButtonClicked('+')">+</button>
            </p>
            <p>
                <button ng-click="ctrl.opButtonClicked('-')">-</button>
                <button ng-click="ctrl.opButtonClicked('*')">*</button>
                <button ng-click="ctrl.opButtonClicked('/')">/</button>
            </p>

        </div>
    </body>
</html>

Проблема в JavaScript, если функция между первым и вторым числом.По какой-то неизвестной мне причине переменная, которую я поместил (у меня ее там не было раньше, но я думал, что это решит проблему), сопротивляется чтению.Он всегда читает его так, как будто pleaseWork не имеет значения null, хотя я специально настроил его так, чтобы оно было.Вероятно, это что-то с Angular или JS, с которым мне никогда не приходилось сталкиваться до сих пор, но я был довольно разочарован, так как большинство вещей, которые я смотрю на эту тему относительно angular, дают мне утверждения ngifelse, которые мне не очень нужныпопробовать только сейчас.

1 Ответ

0 голосов
/ 28 ноября 2018

Измените условие if, вам нужно сделать сравнение вместо присваивания

if (pleaseWork == null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...