【问题标题】:Polymer iron-jsonp-library component's on-data event not getting calledPolymer iron-jsonp-library 组件的 on-data 事件未被调用
【发布时间】:2015-11-02 14:29:22
【问题描述】:

我正在使用聚合物 1.0 的 iron-jsonp-library 组件来触发跨域调用以获取数据。我下面的组件代码成功触发了 jsonp 请求,我在响应中得到了预期的 json 数据。但是在 iron-jsonp-library 的“on-data”属性中指定的事件不会触发。控制台中没有提示 javascript 错误。因此无法弄清楚出了什么问题。 on-data 属性在 Angular 团队成员https://github.com/surma/polymer-reddit-api 发布的示例应用程序中成功运行。但是对于我的跨域调用,iron-jsonp-lib 组件没有按预期工作。 我做错什么了吗?

<link rel="import" href="bower_components/iron-jsonp-library/iron-jsonp-library.html">
<dom-module id="galpicker-api">
  <template>
    <iron-jsonp-library on-data="_loadNewData" library-url="[[_requestUrl]]" callbackName="_ajaxLoad"></iron-jsonp-library>
  </template>
  <script>
    Polymer({
      is: 'galpicker-api',
      properties: {
        searchtext: {
          type: String,
          reflectToAttribute: true,
          notify: true
        },
        employees: {
          type: Array,
          readOnly: true,
          value: function() {
            return [];
          },
          notify: true
        },
        baseUrl: {
          type: String,
          reflectToAttribute: true,
          value: 'https://example.com'
        },
        _requestUrl: {
          type: String,
          readOnly: true,
          computed: '_computeUrl(baseUrl, searchtext)',
          notify: true
        }
      },
      _computeUrl: function(baseUrl, searchtext) {
        return baseUrl + '/api/v1/Employees/search?q=' + searchtext + '&jsonp=%%callback%%';
      },
      _loadNewData: function(ev) {
        alert(ev);
        this._setEmployees(
          ev.detail[0].map(function(employee) {
          return {
            firstName: employee.firstName,
            lastName: employee.lastName,
            department: employee.department
          };
        }));
      },
      _data: function(ev) {
        alert(ev);
      },
      _ajaxLoad: function(data){
        alert(data);
      }
    });
  </script>
</dom-module>

【问题讨论】:

  • 这仍然可以让您获取数据吗?我在当前文档中没有看到 on-data 属性...谢谢

标签: polymer jsonp


【解决方案1】:

发现一个错误:callbackName="_ajaxLoad"应该写成callback-name=(...)。如果还有用的话……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2019-02-16
    • 2014-08-23
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多