По какой-то причине это дает мне ошибку:
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();
}
})
Измените свой контроллер таким образом, поскольку вы используете 'random'
сервис 'random'
myApp.controller('app', ['$scope','random', function( $scope,random)
{
$scope.generateRandom = function(){
alert("Something")
$scope.randomNumber = random.generate();
}
}])
Вот работающее Application
Чтобы использовать сервис в контроллере, вам нужно его ввести.
app.controller('app', function ($scope, random) {
Я бы рекомендовал использовать следующий синтаксис:
app.controller('app', ['$scope', 'random', function ($scope, random) {
См. Почему мы вставляем наши зависимости два раза в angularjs?