我需要有一组资源的工厂消耗REST API和使用,在我所有的模块和控制器。 我很困惑,究竟应该如何分开以及如何从控制器访问工厂。
举个例子,假设我有:
// rest.js
angular.module('myApp.rest', ['ngResource'] )
.factory('Book', function ($resource) {
return $resource('api/book', {}, {
getBook: {
method: 'GET'
},
});
})
这里的主要模块myApp
:
// app.js
angular.module('myApp', [
'ngRoute',
'ngResource',
'app.rest',
'app.library'
])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/book', {
templateUrl: 'someTemplate',
controller: 'LibraryCTRL',
});
现在,我想有另一个名为模块app.library
可以使用Book
资源。 如何依赖注入会是什么样子?
更重要的问题:这是做正确的方式? 我的意思是它更好地整体连接Book
工厂myApp
或使用单独的myApp.rest
模块?
// library.js
angular
.module('myApp.library', ['ngResource']) // INJECT REST MODULE HERE?
.controller('LibraryCtrl', Library);
// INJECT BOOK RESOURCE HERE?
Library.$inject = [];
// USE BOOK IN THIS CONSTRUCTOR
function Library() {
var vm = this;
// USING IT
Book.getBook(function(data){
vm.book = data;
});
}