聚合物UI数据绑定不会刷新

时间:2014-07-26 13:18:51

标签: function callback polymer

您好我正在与Polyner合作开展一个新项目。我为我的卡片制作了一个新的聚合物模板。当我进行新的搜索时,我使用以下搜索功能。

Polymer('moviegrep-element', {
  search: function() {
    var searchString = this.$.searchField.value;
    $.post('/api/search/' + searchString, function(res) {
      this.results = res;
      console.log(this.results);
    });
  }
});

响应是正确的,它是一个对象数组。在角度我会使用范围。$ apply但我没有找到聚合物的解决方案。请帮忙。

1 个答案:

答案 0 :(得分:3)

我认为您的代码中的一个错误是您在回调中使用this - this不是那里的聚合物元素!所以请尝试以下内容(请注意使用_THIS变量)

  search: function() {
    var searchString = this.$.searchField.value;
    var _THIS = this;
    $.post('/api/search/' + searchString, function(res) {
      _THIS.results = res;
    });

如果没有帮助尝试直接将数组分配给模板的模型:

<template repeat="{{ r in results }}" id="tmpl_results">
...
  search: function() {
    var searchString = this.$.searchField.value;
    var tmpl = this.$.tmpl_results;
    $.post('/api/search/' + searchString, function(res) {
      tmpl.model = {results:res};
    });