Sos*_*ian 14 polymer polymer-1.0
我有聚合物铁-ajax元素的问题.当这样称呼时:
<iron-ajax url="https://api.onedrive.com/v1.0/drive/root" params='{"access_token":"[[access_token]]"}'></iron-ajax>
Run Code Online (Sandbox Code Playgroud)
它发送这样的URL,将整个params字符串分成多个参数:
https://api.onedrive.com/v1.0/drive/root?0="&1=a&2=c&3=c&4=e&5=s&6=s&7=_&8=t&9=o&10=k&11=e&12=n&13="...
Run Code Online (Sandbox Code Playgroud)
当使用普通的String作为参数时,它可以正常工作,所以我猜引号是正确的.
元素的脚本部分使用iron-ajax:
<script>
Polymer({
is: 'onedrive-files',
properties: {
access_token: String
},
ready: function() {
},
});
</script>
Run Code Online (Sandbox Code Playgroud)
我正在调用这样的元素:
<onedrive-files access_token="testtoken">
</onedrive-files>
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?谢谢!
编辑:使用getter功能:
<dom-module id="onedrive-files">
<template>
<iron-ajax id="ajax" url="https://api.onedrive.com/v1.0/drive/root" last-response="{{data}}" params='{{_getParams()}}' auto></iron-ajax>
</template>
<script>
Polymer({
is: 'onedrive-files',
properties: {
access_token: String
},
_getParams: function()
{
return ('{"access_token":"' + this.access_token + '"}');
},
ready: function() {
this.$.ajax.generateRequest();
},
});
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
将Param设置为Ready功能:
<dom-module id="onedrive-files">
<template>
<iron-ajax id="ajax" url="https://api.onedrive.com/v1.0/drive/root" last-response="{{data}}" auto></iron-ajax>
</template>
<script>
Polymer({
is: 'onedrive-files',
properties: {
access_token: String
},
ready: function() {
this.$.ajax.params = '{"access_token":"' + this.access_token + '"}';
},
});
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
这似乎是动态属性的另一个限制.因此,这种情况的通常后备是getter函数:
<iron-ajax url="https://api.onedrive.com/v1.0/drive/root" params='{{_getParams(access_token)}}'></iron-ajax>
Run Code Online (Sandbox Code Playgroud)
...
<script>
Polymer({
is: 'onedrive-files',
properties: {
access_token: String
},
_getParams:function(access_token) {
return {access_token:access_token};
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
小智 7
params属性是一个Object,它看起来像是从html属性(String)解析才发生在附加上.
恕我直言,最简单的解决方案是在生成请求之前设置它.但是设置一个Object,而不是String.它将生成params对象的一个GET参数foreach元素,String是一个字符列表,因此每个字符有一个GET参数...
this.$.myAjaxElement.set( 'params', {"access_token": this.access_token });
this.$.myAjaxElement.generateRequest();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4789 次 |
最近记录: |