1

我正在建立一个自定义行为。调用它MyBehaviors.MySpecialBehavior

但我需要获取本地存储在名为 .json 的 JSON 文件中的数据my-data.json

我怎样才能在我的行为中做到这一点?我正在尝试导入iron-ajax,但我想不出如何访问它的方法或属性。

我的特殊行为.html
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">

<script>
  var MyBehaviors = MyBehaviors || {};
  MyBehaviors.MySpecialBehaviorImpl = {
    // Methods go here that rely on data at my-data.json
  };

  MyBehaviors.MySpecialBehavior = [
    MyBehaviors.MySpecialBehaviorImpl,
  ];
</script>
我的数据.json
{
  "important": "data",
  "j": 5,
  "o": "N",
  "goes": "here"
}
4

2 回答 2

3

您可以以编程方式创建元素。看看iron-ajax本身是如何在内部使用iron-request 的

https://github.com/PolymerElements/iron-ajax/blob/master/iron-ajax.html#L442

参考您的用例,用户 a1626创建了以下代码段:

var ajax = document.createElement('iron-ajax');
ajax.contentType = "application/json";
ajax.handleAs = "json";
ajax.url = <url goes here>
ajax.method = 'get';
ajax.addEventListener('response', function (event) {
    //response handler                  
});
ajax.generateRequest();
于 2017-03-13T12:29:28.503 回答
1

ajax.lastResponse您可以在添加的事件侦听器中访问 json 数据。

var ajax = document.createElement('iron-ajax');
ajax.contentType = "application/json";
ajax.handleAs = "json";
ajax.url = <url goes here>
ajax.method = 'get';
ajax.addEventListener('response', function (event) {
    //response handler
    console.log('ajax', ajax.lastResponse);            
});
ajax.generateRequest();
于 2017-03-13T21:13:24.107 回答