【问题标题】:AngularJS $resource parameter nameAngularJS $resource 参数名称
【发布时间】:2014-04-22 19:18:02
【问题描述】:

我正在使用 PhP 界面。我必须与此界面交互以保存一些数据。例如,为了保存客户,PhP 服务希望通过这种形式的 POST 请求获取数据

  • customer[customer_name] = "客户名称"
  • customer[customer_code] = "客户代码"
  • customer[customer_is_visible] = "客户是否可见"

我尝试创建一个 AngularJS 服务来做到这一点:

angular.module("app").factory("SaveCustomer", ["$resource", 
    function($resource){
        return $resource("/services/customers/post/", 
                            {
                                customer[customer_name]:'@name',
                                customer[customer_code]:'@code',
                                customer[customer_is_visible]:'@visibility',
                                dtsave:'true'
                            },
                            {
                                save: {
                                       method:'POST'
                                }
                            });
}]);

问题在于参数名称。 Angular 不喜欢方括号,它说:“预期:但在客户 [custom ... (请注意,该接口不是我创建的)。谢谢。

编辑:我这样调用服务:

SaveCustomer.save({name:customerName, code:customerCode, visibility:customerIsVisible});

【问题讨论】:

  • 你能把你调用 $resource 对象的那行贴出来吗?
  • 我编辑了这个问题。看看,提前谢谢你。

标签: javascript php html angularjs interface


【解决方案1】:

我认为你不需要在 $resource 对象的默认参数中定义任何东西,这段代码应该可以工作(我想是的)

angular.module("app").factory("SaveCustomer", ["$resource", 
    function($resource){
        return $resource("/services/customers/post/", 
            {
                dtsave:'true'
            },
            {
                save: {
                    method:'POST'
                }
            }
        );
    }
]);

你可以这样称呼它:

SaveCustomer.save({customer: {customer_name:customerName, customer_code:customerCode, customer_is_visible:customerIsVisible}});

【讨论】:

  • 我还是会把它们放在那里声明工厂需要什么,否则客户不能拥有这三个字段之一,如果不是全部的话
【解决方案2】:

尝试将customer 变成一个对象:

angular.module("app").factory("SaveCustomer", ["$resource", 
    function($resource){
        return $resource("/services/customers/post/", 
            {
                customer: { 
                    customer_name: '@name',
                    customer_code:'@code',
                    customer_is_visible:'@visibility'
                },
                dtsave:'true'
            },
            {
                save: {
                    method:'POST'
                }
            }
        );
    }
]);

【讨论】:

  • 我需要数组表示法。 PhP 接口希望准确接收 customer[customer_name]='value', customer[customer_code]='code', customer[customer_is_visible]='value' ecc ecc 作为参数”
  • PHP 将如何接收它。您的浏览器将以您期望的方式发送它@superpuccio
  • 如何调用保存函数?它是否正确? SaveCustomer.save({name:customerName, code:customerCode, visibility:customerIsVisible});
  • 看起来不错,应该和之前@superpuccio一样
  • 嗯...它似乎不起作用。您是否曾经验证过 PhP 以正确的“数组”形式接收数据,并以您的方式传递参数?我想答案是“是”:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多