Reputation: 231
I am quite new at Angular and having problem while trying to use service. Here are my code:
TodoApp.js:
'use strict'
var todoApp=angular.module('todoApp',['ngRoute']);
And service.js
'use strict'
todoApp.service('dataServie', [function () {
this.getTodoData = function () {
return [{ 'task': 'shopping', 'due': 1288323623006, 'done': true },
{ 'task': 'homework', 'due': 1288323623006, 'done': false },
{ 'task': 'cleaning', 'due': 1288323623006, 'done': false }];
};
}])
And controller.js
'use strict'
todoApp.controller('todoController', ['$scope','dataService',
function ($scope,dataService) {
$scope.todoList = dataService.getTodoData();
$scope.makeDone = function (todo) {
todo.done = true;
};
}
])
and index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hello</title>
<script type="text/javascript" src="Scripts/angular.min.js"></script>
<script type="text/javascript" src="Scripts/angular-route.js"></script>
<script type="text/javascript" src="Scripts/app/TodoApp.js"></script>
<script type="text/javascript" src="Scripts/app/service.js"></script>
<script type="text/javascript" src="Scripts/app/Controller.js"></script>
</head>
<body ng-app="todoApp">
<h1>hello!</h1>
<div ng-controller="todoController">
<ul ng-repeat="todo in todoList">
<li><span>{{todo.task}}</span>
<span>{{todo.due | date:'mediumTime'}}</span>
<input ng-model="todo.done" type="checkbox" ng-cheked="todo.done"/>
<span>{{todo.done}}</span>
</li>
</ul>
</div>
</body>
</html>
And receive this error message:
Error: error:unpr Unknown Provider Unknown provider: dataServiceProvider <- dataService
Upvotes: 0
Views: 133
Reputation: 16508
Just few spelling mistakes.
var todoApp = angular.module('todoApp', ['ngRoute']);
todoApp.service('dataService', [
function() {
this.getTodoData = function() {
return [{
'task': 'shopping',
'due': 1288323623006,
'done': true
}, {
'task': 'homework',
'due': 1288323623006,
'done': false
}, {
'task': 'cleaning',
'due': 1288323623006,
'done': false
}];
};
}
])
todoApp.controller('todoController', ['$scope', 'dataService',
function($scope, dataService) {
$scope.todoList = dataService.getTodoData();
$scope.makeDone = function(todo) {
todo.done = true;
};
}
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.min.js"></script>
<body ng-app="todoApp">
<h1>hello!</h1>
<div ng-controller="todoController">
<ul ng-repeat="todo in todoList">
<li><span>{{todo.task}}</span>
<span>{{todo.due | date:'mediumTime'}}</span>
<input ng-model="todo.done" type="checkbox" ng-cheked="todo.done" />
<span>{{todo.done}}</span>
</li>
</ul>
</div>
</body>
Upvotes: 1
Reputation: 167
You've registered a service call "dataServie".
You're trying to inject a service call "dataService" into your controller but it doesn't exist, hence the error message.
Looks like a typo .service('dataServie' should be .service('dataService'
Upvotes: 0