angularjs – 使用Restangulars extendModel添加的函数未定义?
发布时间:2020-12-17 07:11:01 所属栏目:安全 来源:网络整理
导读:我有这样的服务: .factory('Car',function(Restangular) { var baseCars = Restangular.all('cars'); Restangular.extendModel('cars',function(obj) { obj.extraMethod = function() { console.log('method added'); }; return obj; }); return { show: fu
我有这样的服务:
.factory('Car',function(Restangular) { var baseCars = Restangular.all('cars'); Restangular.extendModel('cars',function(obj) { obj.extraMethod = function() { console.log('method added'); }; return obj; }); return { show: function(id) { return baseCars.one(id).get(); } }; }); 和这样的控制器: .controller('CarCtrl',function ($scope,$stateParams,Car) { Car.show($stateParams.id).then(function(car) { $scope.car = car; $scope.car.extraMethod(); }); }); 但是,这会导致$scope.car.newMethod()中的undefined不是函数错误. 有谁知道这是为什么以及如何让它工作? 解决方法
实际上你太近了,但是当你写作时你就错过了
Restangular.extendModel('cars',function(obj) { obj.extraMethod = function() { console.log('method added'); }; return obj; }); 这只是用“汽车”路线扩展对象…… 但你的返回对象的路由是你的id参数… 试试这个代码…… factory('Car',function(Restangular) { Restangular.extendModel('cars',function(obj) { obj.extraMethod = function() { console.log('method added'); }; return obj; }); return { show: function(id) { return Restangular.one('cars',id).get(); } }; } 这次返回对象的路由是汽车,它将有extramethod()… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |