I got the following error : Unknown provider: BackandProvider <- Backand <- Post Here is my code : In index.html, I have include backand.min.js :
<script src="https://cdn.backand.net/backand/dist/1.8.2/backand.min.js"></script>
I have a factory Post with a find method. Factory.js
app.factory('Post',["$http","$q","Backand", function($http, $q, Backand){
var factory = {
posts : false,
find : function(options){
var deferred = $q.defer();
$http({
method: 'GET',
url: Backand.getApiUrl() + '/1/objects/' + options.name,
params: {
pageSize: 20,
pageNumber: 1,
filter: options.filter || '',
sort: options.sort || ''
}
})
.success(function(data,status){
factory.posts = data;
deferred.resolve(factory.posts);
}).error(function(data,status){
deferred.reject('Impossible de récupérer les articles'+ status);
})
return deferred.promise;
},
get : function(id){
var deferred = $q.defer();
var post = {};
var posts = factory.find().then(function(posts){
angular.forEach(posts,function(value,key){
if(value.id == id){
post = value;
}
});
deferred.resolve(post);
}, function(msg){
deferred.reject(msg);
});
return deferred.promise;
},
add : function(comment){
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
};
return factory;
}]);
In my controller, I call the find method of my factory. Controller.js
app.controller('PostsCtrl',["$scope","$rootScope","Post", function($scope, $rootScope,Post){
$rootScope.loading = true;
var options = {name:"Post",filter:"",sort:""}
$scope.posts = Post.find(options).then(function(posts){
$rootScope.loading = false;
$scope.posts = posts;
}, function(msg){
alert(msg);
});
}]);
The configuration is below. app.js
var app = angular.module('monApp',['ngRoute','ngResource','backand']);
app.config(["$routeProvider","BackandProvider",function($routeProvider, BackandProvider){
$routeProvider
.when('/',{templateUrl:'partials/home.html',controller:'PostsCtrl'})
.when('/comments/:id', {templateUrl: 'partials/comments.html',controller:'CommentsCtrl'})
.otherwise({redirectTo : '/'});
BackandProvider.setAppName('APP-NAME');
BackandProvider.setSignUpToken('TOKEN');
BackandProvider.setAnonymousToken('ANONYMOUS-TOKEN');
}]);
Your code is fine.
I create a jsbin with your code, and everything works well.
You just have to set APP_TOKENS from backand site.