使用API​​调用中的数据更新聚合物元素属性

时间:2016-01-22 01:10:58

标签: ajax api data-binding polymer polymer-1.0

我正在尝试使用来自ajax api调用的数据更新聚合物元素中的属性。我在应用程序的其他地方有类似的工作,用户可以动态添加包。

任何人都知道我在这里做错了吗?

{{1}}

我能够将我正在尝试使用的数组作为console.log,但是当我尝试将其推送到'options'属性时,它将不会更新。

3 个答案:

答案 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 bindingPolymer'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;,东西);似乎没有添加到对象的工作)