ReferenceError:在Scope中未定义random。$ scope.generateRandom angular js

时间:2015-12-31 05:21:36

标签: javascript angularjs

出于某种原因,它给了我错误:

  

ReferenceError:在Scope。$ scope.generateRandom

中未定义random

我不知道我做错了什么,你可以去看看我用来做HERE的网站。

的index.html:

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

<head>
    <meta charset="UTF-8" />
    <title>Basic Login Form</title>
    <script data-require="angular.js@1.4.x" 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 :(得分:2)

要在控制器中使用服务,您需要注入它。

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

我建议您使用以下语法:

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

请参阅Why we Inject our dependencies two times in angularjs?

答案 1 :(得分:0)

更改您的控制器,因为您正在使用服务'random'

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

    }
}])

这是工作Application