Это потому, что 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>