Четная или нечетная программа в AngularJS - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь написать четную или нечетную программу в angularJs. В приведенном ниже коде я определил свой собственный пользовательский сервис, чтобы определить, является ли число четным или нечетным, и оно будет работать нормально, когда значение жестко закодировано. Но когда я пытаюсь дать значение в реальном времени, используя метод ввода, я не могу получить желаемый ответ. Пожалуйста, помогите мне с этим.

Код:

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app='myApp' ng-controller='myCtrl'>
    <input type='number' name='num' ng-model='num'><br>
    <b>The number Entered is {{num}} which is {{myUserService}} </b>
</div>
<script>
angular.module('myApp',[]).service('myService',function(){
            this.myFunc=function(x){
                if(x%2==0)
                    return 'EVEN';
                else
                    return 'ODD';
                };
            }).controller('myCtrl',function($scope,myService){
                $scope.myUserService= myService.myFunc($scope.num);
          });
</script>
</body>
</html>
  • Элемент списка

1 Ответ

1 голос
/ 02 апреля 2020

Это потому, что ng-модель не срабатывает при изменении.

Ваш код в данный момент запускается один раз, при загрузке, в этот момент значение равно undefined, и оно печатает "ODD", и поскольку ничего не вызывает изменения ввода, ничего не происходит.

Я бы рекомендуем прослушивать событие keyup на входе, используя ng-keyup, как в примере ниже:

angular.module('myApp', []).service('myService', function() {
  this.myFunc = function(x) {

    if (Number(x) % 2 === 0)
      return 'EVEN';
    else
      return 'ODD';
  };
}).controller('myCtrl', function($scope, myService) {
  $scope.check = function(num) {
    $scope.myUserService = myService.myFunc(num);
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app='myApp' ng-controller='myCtrl'>
  <input type='number' name='num' ng-model="num" ng-keyup='check(num)'><br>
  <b>The number Entered is {{num}} which is {{myUserService}} </b>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...