我是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工具TypeError: Cannot read property 'then' of undefined
收到错误。
我该如何使这项工作?这是实现模型的好方法吗?
答案 0 :(得分:2)
在您的控制器中,您错过了all
方法中的括号:
变化:
Testimonial.all.then(function (testimonials) {
$scope.testimonials = testimonials;
});
为:
Testimonial.all().then(function (testimonials) {
$scope.testimonials = testimonials;
});
您还需要在工厂中返回Testimonial
的新实例:
变化:
return Testimonial;
为:
return new Testimonial();