加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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()…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读