我正在尝试使用来自ajax api调用的数据更新聚合物元素中的属性。我在应用程序的其他地方有类似的工作,用户可以动态添加包。
任何人都知道我在这里做错了吗?
{{1}}
我能够将我正在尝试使用的数组作为console.log,但是当我尝试将其推送到'options'属性时,它将不会更新。
答案 0 :(得分:1)
考虑使用Polymer内置方法而不是jQuery。
<强> 1。用于提交请求的按钮。
<paper-button on-click="handleClick">Send a package</paper-button>
<强> 2。 AJAX请求使用<iron-ajax>
元素!
<iron-ajax id="SendPkg"
url="my/api/url"
method="POST"
headers='{"Content-Type": "application/json"}'
body={{packageDetails}}
on-response="handleResponse">
</iron-ajax>
第3。处理点击事件
点击,select <iron-ajax>
按ID并致电<iron-ajax>
的{{1}}
使用data binding或Polymer's DOM API获取包裹的宽度,高度......等
generateRequest()
<强> 4。处理回复
handleClick: function() {
this.packageDetails = {"width": this.pkgWidth, "height": this.pkgHeight };
this.$.SendPkg.generateRequest();
},
答案 1 :(得分:0)
return stuff;
});
this.push('options',stuff);//doesn't seem to update the 'options' property with these as a value
应该是 返回东西;
this.push('options',stuff);//doesn't seem to update the 'options' property with these as a value
)};
否则
this.push('options',stuff);
在数据到达之前执行
答案 2 :(得分:0)
解决方案最终将其变为变量:
var self = this;
然后在ajax .done()中用ajax调用中的新对象替换对象的值。
self.options = stuff;
我猜你必须把#34;这个&#34;在你可以覆盖它的值之前变成一个变量。然后另一个问题是我试图使用.push()添加它,但实际上我需要做的就是替换它。 (使用self.push(&#39;选项&#39;,东西);似乎没有添加到对象的工作)