【发布时间】:2018-08-11 17:01:44
【问题描述】:
我有下面的一段代码,我使用 Iron ajax 和聚合物来调用 http 请求,因此使用聚合物属性传递 body 和 last-response 的值。正如我们在这里看到的那样,我们有 requestBody 聚合物属性在 requestBody 中不返回任何值所有值都是硬编码的,例如标签下的开始和结束以及名称。
<px-vis-timeseries
width="1000"
height="250"
margin='{"top":30,"bottom":60,"left":65,"right":65}'
register-config='{"type":"vertical","width":200}'
selection-type="xy"
chart-data="{{ltuchartData}}"
series-config="[[LTUseriesConfig]]"
chart-extents='{"x":["dynamic",1619712],"y":[0,100]}'
event-data='[{"id":"333","time":15697128,"label":"test"}]'
x-axis-config='{"title":"Time"}'
y-axis-config='{"axis1":
{"title":"Remaining","titleTruncation":false,"unit":"%"}}'>
</px-vis-timeseries>
<iron-ajax
id="Request"
method="POST"
content-type="application/json"
auto
url="/api/series/v1/points"
last-response="{{Data123}}"
body="{{requestBody}}">
</iron-ajax>
Polymer({
is: 'test-view',
behaviors: [GlobalsBehaviour],
properties: {
uri: {
type: String,
observer: '_uriChanged'
},
requestBody:{
type: Object,
value: function() {
return {
"start": 11111,
"end": 123333,
"tags": [
{
"name" : "/asset/India/rotor",
}
]
};
}
},
Data123:{
type: Object,
observer: '_formateData'
},
observers: [
'_uriChanged(globals.uri)'
],
_uriChanged: function(uri) {
this.set('requestBody.tags.0.name', uri);
this.$.Request.generateRequest();
}
下面是关于上述代码的查询。
-
我想根据我尝试过的 uri 动态设置 end 属性值(在 requestBody 属性值中定义):this.set('requestBody.end', "1113444");在 _uriChanged 中,但是没有用。
-
我想在上面的 px-vis-timeseries 聚合物组件的属性中动态传递这个 end 属性值:
chart-extents='{"x":["dynamic",1619712],"y":[0,100]}'
event-data='[{"id":"333","time":15697128,"label":"test"}]'
在上面的属性中,我想传递 end 属性值,例如:
在“1619712”位置的图表范围中,我想通过“结束”+ 2*50000 在“15697128”位置的事件数据中,我想通过“结束”+ 50000
为此,我也尝试过这样的 chart-extents = '{"x":["dynamic" , {{requestBody.end}}] , ,"y":[0,100]}'
现在我已经根据我的要求在 requestBody 计算函数 (_getRequestBody) 中设置了 end 属性值。现在我的问题是我想在我的另一个计算函数中获取这个 end 属性值 (_chartExtents 的 n 是 (_getChartExtents)我想将这个结束属性值(我们将从请求正文中获得)传递给 xDynamic(这是 chartExtents 的属性)
- 因为我想在 name 属性中传递 uri 值,该属性在 requestBody 属性中定义,所以我设置如下
this.set('requestBody.tags.0.name', uri);在 _urichanged 回调中工作正常,现在我的问题是在定义或声明名为 requestBody 的聚合物属性时,我不想在 name 属性中传递任何硬编码值,因为我尝试了“name”:“”和“name”:this.uri,和 "name" : uri ,但无法获取值。
注意:uri 来自另一个聚合物组件,在某些情况下它来自全局设置变量。
如何在不传递任何硬编码值的情况下声明名称属性值?
【问题讨论】: