【问题标题】:Using a full URL with Restangular使用带有 Restangular 的完整 URL
【发布时间】:2013-08-01 18:26:22
【问题描述】:

我喜欢 AngularJS 的 Restangular 的所有功能,除了我找不到(而且它可能不支持)只向它传递完整 URL 的方法。我意识到 .one('something','someparam') 的好处,但我的问题是我传递了各种 URL 字符串,我真的不想为了使用 Restangular 而拆分()它们。

另外,我知道 baseURL 函数;但我传递的这些 URL 不一定来自相同的基本路径。

例如,我可能有:

/us/en/product/17726
/us/es/products
/us/es/product/991A0
/ca/en/accounts

我得到的只是字符串...

【问题讨论】:

    标签: javascript rest angularjs restangular


    【解决方案1】:

    我是 Restangular 的创造者。

    您有两种选择。

    1) 在每种情况下创建具有不同 BaseURL 的作用域 Restangulars:https://github.com/mgonto/restangular#how-to-create-a-restangular-service-with-a-different-configuration-from-the-global-one

    2) 你可以像 Restangular.all('us/en/').one('products', 1726)Restangular.one('us/en/product', 1234) 一样使用它

    希望它对你有用:)

    【讨论】:

    • 这就是我所需要的。我尝试添加完整的 URL,例如 Restangular.all('/us/en') 并且它对我不利。一定是那个前导斜线。
    • 您认为添加一项功能是否有用,该功能允许某人在给定字符串 URL 的情况下发出一次性请求,这样他们就不必处​​理它或创建多个作用域实例?这对 $resource 的好处之一是单个请求不需要多个实例...
    • 嘿,我不认为它会有多大帮助。正如您所看到的,现在使用它非常相似,因为您也可以将它与 URL 一起使用:)。
    【解决方案2】:

    我只需要GET 一个绝对网址就遇到了这个问题。

    方法如下:

    Restangular.oneUrl('routeName', 'http://absolute.url').get();

    restangular#restangular-methods

    【讨论】:

    • routeName 在这里做什么?
    • @AlirezaMirian 我手头没有使用它的源代码,但如果我没记错的话,routeName 基本上充当了 Restangular 路由的 GUID。从Restangular.oneUrl() 返回的对象不需要知道routeName。不确定如何处理 routeName 冲突...
    • 注意:在这种形式下,返回的 Restangular 元素的路由无效,因此 put() 和 post() 不起作用
    • @itghisi 这可能会引起混淆。如果返回元素,则路由有效,但可能不支持 PUT 和 POST 动词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多