use*_*118 5 javascript angularjs angularjs-resource
我是AngularJS的初学者,在这段代码中找不到我的错误
var myCarResource = $resource('cars/:carId',
{
carId:'@id'
});
var car = myCarResource.get({id:'abc'});
Run Code Online (Sandbox Code Playgroud)
预期网址:
.../cars/abc
被叫URL是:
.../cars?id=abc
我正在使用angularjs v1.2.24
谁能帮我?谢谢
如$ resource paramDefaults文档中所述:
给定模板/路径/:动词和参数{动词:'问候',称呼:'你好'}导致URL /路径/问候?称呼=你好.
如果参数值以@为前缀,那么将从 数据对象上的相应属性中提取该参数的值(在调用操作方法时提供).例如,如果defaultParam对象是{someParam:'@ someProp'},那么someParam的值将是data.someProp
这表明在parameterizd url中定义的任何谓词与$resource's参数默认值或$resource类方法(get,save等)参数中定义的键匹配,将具有该键的相应值替换url中的谓词.另一方面,'@'符号在这种情况下没有得到恰当的解释,应该是:
如果参数值以@为前缀,那么将从数据对象上的相应属性中提取该参数的值(在调用实例操作方法时提供).
实例操作方法($ get,$ save,$ delete等)是用于使用类操作方法检索的数据对象的$resource方法.在使用相同资源链接请求时,这些通常很有用.
让我们假设您cars/abc返回一个响应json:
{
"id": "abc"
}
Run Code Online (Sandbox Code Playgroud)
阅读显示每个操作方法调用的响应的注释.
var myCarResource = $resource('cars/:carId',
{
carId:'@id'
});
// This sends a GET request '/cars/?id=abc
myCarResource.get({id:'abc'});
// This sends a GET request '/cars/abc'
myCarResource.get({carId:'abc'}); // returns {"id": "abc"}
myCarResource.get({carId:'abc'}).$promise.then(function(car) {
// sends a POST request '/cars/abc', it replaces the :carId verb from the
// @id notation you have defined in the parameter default. It also sends,
// other parameter defaults defined with '@' that are defined as verbs in the url.
car.$save();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |