我已经编写了一个函数(Polymer 1.2.0)来返回iron-ajax的auth header ,但无论我尝试什么,我都会收到消息
[dom-bind::_annotatedComputationEffect]:计算方法
makeheaders未定义
除了这段代码之外,我还尝试了“Polymer({is: 'dom-bind'} ... blah:fn()”绑定(bind) fn 的方式。
我做错了什么?这是相关的代码块:
<div id="futuretweets" style="height: 400px">
<template is="dom-bind" id="big-temp">
<script>
document.querySelector('template[is=dom-bind]').makeheaders = function () {
var obj = {};
obj.Authorization = "Bearer " + localStorage.getItem('userToken');
return obj;
};
</script>
<iron-localstorage name="auth" value="{{localtoken}}"></iron-localstorage>
<iron-ajax url="api/twitter/v1/private/gettweets" last-response="{{data}}" auto
headers="{{makeheaders()}}"
handle-as="json">
</iron-ajax>
<iron-list items="[[data.futuretweets]]" as="item">
<template id="tweet-item">
<form is="iron-form" id="tweetform" method="post" action="api/twitter/v1/private/updatetweet"
headers="{{makeheaders()}}" contentType="application/json">
<div class="card layout horizontal center">
<paper-textarea label="Tweet">[[item.text]]</paper-textarea>
<p>datetime: [[item.datetime]]</p>
</div>
<paper-button>Save</paper-button>
</form>
</template>
</iron-list>
</template>
<div id="tweeteditor">
</div>
</div>
最佳答案
将脚本移至 template
元素之外。模板是静态的。您的代码中发生的情况是,您在将 dom-bind
的属性标记到 DOM 后声明它。
关于javascript - 无法执行计算数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929793/