Создание объектно-ориентированной модели AngularJS с Restangular
Я новичок в Angular и пытаюсь выяснить, как создать модель для очистки моего контроллера. Я использую Restangular и создал фабрику, которая возвращает объект модели.
Я думал, что мог бы сделать что-то вроде этого...
модель
Testimonials.factory('Testimonial', ['Restangular', function(Restangular) {
/**
* Constructor
*/
function Testimonial() {
// public properties, assigned to the instance ('this')
}
Testimonial.prototype.all = function() {
return Restangular.all('testimonials').getList();
}
/**
* Return the constructor function
*/
return Testimonial;
}]);
контроллер
Testimonials.controller('TestimonialsController', ['$scope', 'Testimonial', function($scope, Testimonial) {
Testimonial.all.then(function (testimonials) {
$scope.testimonials = testimonials;
});
}]);
Я получаю сообщение об ошибке в chome dev tools, TypeError: Cannot read property 'then' of undefined
,
Как я могу сделать эту работу? И это хороший способ реализовать модель?
1 ответ
Решение
В вашем контроллере, вы пропустите скобки в вашем all
метод:
менять:
Testimonial.all.then(function (testimonials) {
$scope.testimonials = testimonials;
});
чтобы:
Testimonial.all().then(function (testimonials) {
$scope.testimonials = testimonials;
});
и вам также нужно вернуть новый экземпляр Testimonial
на вашем заводе:
менять:
return Testimonial;
чтобы:
return new Testimonial();