ReferenceError: random не определен в Scope. $ Scope.generateRandom angular js

0

По какой-то причине это дает мне ошибку:

ReferenceError: random не определен в Scope. $ Scope.generateRandom

Я не знаю, что я делаю неправильно, вы можете пойти проверить сайт им использовать, чтобы сделать это ЗДЕСЬ.

index.html:

<!DOCTYPE html>
<html lang= "en">

<head>
    <meta charset="UTF-8" />
    <title>Basic Login Form</title>
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.8/angular.js" data-semver="1.4.8"></script>
    <script src = "https://rawgit.com/nirus/Angular-Route-Injector/master/dist/routeInjector.js"></script>
    <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular-route.js"></script>
    <script type="text/javascript" src="script23.js"></script>
</head>
  <body ng-app = "app" ng-controller = "app">
       <button ng-click = "generateRandom()">Generate Random Number</button>
       <br> {{randomNumber}}
  </body>
</html>

script23.js:

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

app.service('random', function(){
    var randomNum = Math.floor(Math.random()*10)
    this.generate = function(){
          return randomNum;
    }

});

app.controller('app' ,  function($scope){
    $scope.generateRandom = function(){
      alert("Something")
        $scope.randomNumber = random.generate();

    }
})
Теги:

2 ответа

0
Лучший ответ

Измените свой контроллер таким образом, поскольку вы используете 'random' сервис 'random'

myApp.controller('app', ['$scope','random', function( $scope,random)
{
    $scope.generateRandom = function(){
      alert("Something")
        $scope.randomNumber = random.generate();

    }
}])

Вот работающее Application

  • 0
    Тем не менее работа :( доцент checkingprojects.netne.net
  • 0
    Мне скоро спать. Просьба выяснить ошибку :(
Показать ещё 1 комментарий
2

Чтобы использовать сервис в контроллере, вам нужно его ввести.

app.controller('app', function ($scope, random) {

Я бы рекомендовал использовать следующий синтаксис:

app.controller('app', ['$scope', 'random', function ($scope, random) {

См. Почему мы вставляем наши зависимости два раза в angularjs?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню