小编hkr*_*ss2的帖子

是否可以使用带角度$ http服务的参数化URL模板

我使用$ resource作为我的RESTful api,并且喜欢参数化的URL模板 'api/clients/:clientId'

这适用于CRUD操作.然而,我的一些api只是报告或只读端点,而不需要完整的RESTful处理.我觉得为那些人使用$ resource并使用$ http的自定义数据服务是有点过分.

唯一的缺点是我丢失了参数化的URL模板.我很乐意定义一个网址,'api/clients/:clientId/orders/:orderId'然后通过{ clientId: 1, orderId: 1 }.我意识到我可以动态构建url,但希望$ http支持参数化模板,我还没有找到它.

祝一切顺利

更新7/5

我在搜索中遗漏的这个词是'Interpolate'.当我搜索'angular $ http'中的url interpolation时,会出现更多信息.简短回答看起来是'不'$ http不支持url插值.然而,有一些相当简单的方法来实现这一点.

1.使用$ interpolate:

这里的文档$interpolate

var exp = $interpolate('/api/clients/{{clientId}}/jobs/{{jobId}}', false, null, true);
var url = exp({ clientId: 1, jobId: 1 });
Run Code Online (Sandbox Code Playgroud)


2.编写自己的url插值函数

Ben Nadel在这里有一个关于这个确切主题的精彩帖子.


3.从角度资源中窃取功能

查看angular-resource.js中 Route.prototype上的setUrlParams .这很简单.

使用$ interpolate的示例数据服务

(function () {
    'use strict';

    var serviceId = 'dataservice.jobsReports';

    angular.module('app').factory(serviceId, ['$http', '$interpolate', function ($http, $interpolate) {

        var _urlBase = 'http://localhost:59380/api';
        var _endPoints …
Run Code Online (Sandbox Code Playgroud)

resources http angularjs angular-resource

16
推荐指数
1
解决办法
3739
查看次数

标签 统计

angular-resource ×1

angularjs ×1

http ×1

resources ×1