与Restangulars extendModel增加的功能是不确定的? [英] Function added with Restangulars extendModel is undefined?

查看:151
本文介绍了与Restangulars extendModel增加的功能是不确定的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的服务:

.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()误差

有谁知道这是为什么,以及如何得到它的工作?

Does anyone know why this is and how to get it to work?

推荐答案

其实你太接近,但你缺少的,当你写

Actually you are too close but you missing that when you write

Restangular.extendModel('cars', function(obj) {
    obj.extraMethod = function() { console.log('method added'); };
    return obj;
});

这只能延长对象的'车'路线...

this only extend object with 'cars' route...

但你的回报对象的路线是无论你的id参数...

but your return object's route is whatever your id parameter...

试试这个code ...

try this code...

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

这篇关于与Restangulars extendModel增加的功能是不确定的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆