Angular, Pourquoi faire compliqué?
Ce matin en voulant continuer mon âpĂ©riple Angularâ, et en repensant au commentaire fait par Eric Taix dans le post prĂ©cĂ©dent http://k33g.github.io/2014/05/20/ANGULAR-04.html , je me suis aperçu que mon code nâĂ©tait pas forcĂ©ment Ă©lĂ©gant et que lâon pouvait faire plus simple et plus propre (câest mon avis, câest discutable et jâaccepte dâen discuter).
Une factory Ă la place de mon service
Nous allons remplacer notre BooksServices
par une factory que nous appellerons Book
. Donc supprimer complĂštement le code de BooksServices
et remplacez le par:
booksApp . factory ( "Book" , function ( $resource ) {
return $resource ( "/books/:id" , { id : '@id' },{
update : { method : 'PUT' , params : { id : '@id' }, isArray : false }
});
})
DĂ©jĂ câest beaucoup plus court ;)
Modification de nĂŽtre contrĂŽleur
Du coup il va y avoir un peu plus de code dans le contrÎleur, mais à peine, et on évite mon mécanisme de callback précédent:
Notez bien le passage de paramĂštres avec Book
Ă la place de BooksServices
.
var MainCtrl = booksApp . controller ( "MainCtrl" , function ( $scope , Models , Book ) {
$scope . books = null ;
$scope . levels = Models . levels ();
$scope . getAllBooks = function () {
Book . query (). $promise . then (
function ( data ) {
$scope . books = data ;
},
function ( error ) {
console . log ( "getAllBooks" , error );
}
)
}
$scope . createBook = function ( book ) {
Book . save ( book ). $promise . then (
function ( data ) {
$scope . getAllBooks ();
},
function ( error ) {
console . log ( "createBook" , error );
}
)
}
$scope . updateBook = function ( book ) {
Book . update ({ id : book . _id }, book ). $promise . then (
function ( data ) {
$scope . getAllBooks ();
},
function ( error ) {
console . log ( "updateBook" , error );
}
)
}
$scope . getBook = function ( id ) {
Book . get ({ id : id }). $promise . then (
function ( data ) {
console . log ( data );
$scope . book = data ;
},
function ( error ) {
console . log ( "getBook" , error );
}
)
}
$scope . deleteBook = function ( id ) {
Book . delete ({ id : id }). $promise . then (
function ( data ) {
$scope . getAllBooks ();
},
function ( error ) {
console . log ( "book delete ERROR" , error );
}
)
}
$scope . getAllBooks ()
});
VoilĂ , câest tout pour aujourdâhui, mais ça me semblait important Ă prĂ©ciser. Demain, finalement un peu de cosmĂ©tique, promis (sauf si je trouve dâautres axes de refactoring avant).