Polymer 需要一些帮助来构建 url in iron-list item
Polymer Need some help building a url in iron-list item
我 运行 遇到了与此类似的问题 。
但是,我的情况有点不同,我似乎无法让它工作。到目前为止,我已经玩了一段时间了,但运气不好。我需要 href$="{{_getProject(item.project_id)}}"
写成 "webservices/api/projects/1"
但我能得到的最接近的结果是输出 item.project_id
没有能够与它连接,所以只有 1。我尝试了各种方法,但下面是我最近尝试的方法。有没有人对我如何让它工作有任何想法?我确定这是我忽略的东西。
<template is="dom-bind">
<iron-ajax url="<?echo $url?>" last-response="{{data}}" auto></iron-ajax>
<iron-list items="[[data]]" as="item">
<template>
<div>
<div class="item">
<div class="pad">
<div class="primary">[[item.project_name]]</div>
<div class="secondary">Project Deadline:</div>
<div class="secondary">[[item.project_deadline]</div
<div class="secondary">Total Hours to date:</div>
<div class="secondary">[[item.project_total_hours</div>
<div class="secondary">[[item.project_id]]</div>
</div>
<a href$="{{_getProject(item.project_id)}}"><iron-icon icon="assignment"><iron-icon></a>
</div>
</div>
</template>
<script>
Polymer({
_getProject: function(url) {
return 'webservices/api/projects/' + url
}
});
</script>
</iron-list>
</template>
你在 iron-list 中的 Polymer({...})
调用不会像你预期的那样工作(它实际上应该在控制台中显示错误),因为你不是 defining/can' t 在 iron-list
中定义一个自定义元素,但只定义一个将被标记的模板。
有两种方法可以达到你想要的效果。
定义您在 iron-list
中使用的自定义元素
<dom-module id="my-item">
<template>
<div class="item">
...
<a href$="{{_getProject(item.project_id)}}">...</a>
</div>
</template>
<script>
Polymer({
is: 'my-item',
properties: {
item: Object
},
_getProject: function(url) {
return 'webservices/api/projects/' + url
}
});
</script>
</dom-module>
<iron-list items="[[data]]" as="item">
<template>
<my-item item="[[item]]"></my-item>
</template>
</iron-list>
在主模板上定义 _getProject
函数
<template is="dom-bind" id="app">
...
<iron-list items="[[data]]" as="item">
<template>
<div>
<div class="item">
...
<a href$="{{_getProject(item.project_id)}}">...</a>
</div>
</div>
</template>
</iron-list>
</template>
<script>
var app = document.getElementById('app');
app._getProject = function (url) {
return 'webservices/api/projects/' + url
}
</script>
我 运行 遇到了与此类似的问题
但是,我的情况有点不同,我似乎无法让它工作。到目前为止,我已经玩了一段时间了,但运气不好。我需要 href$="{{_getProject(item.project_id)}}"
写成 "webservices/api/projects/1"
但我能得到的最接近的结果是输出 item.project_id
没有能够与它连接,所以只有 1。我尝试了各种方法,但下面是我最近尝试的方法。有没有人对我如何让它工作有任何想法?我确定这是我忽略的东西。
<template is="dom-bind">
<iron-ajax url="<?echo $url?>" last-response="{{data}}" auto></iron-ajax>
<iron-list items="[[data]]" as="item">
<template>
<div>
<div class="item">
<div class="pad">
<div class="primary">[[item.project_name]]</div>
<div class="secondary">Project Deadline:</div>
<div class="secondary">[[item.project_deadline]</div
<div class="secondary">Total Hours to date:</div>
<div class="secondary">[[item.project_total_hours</div>
<div class="secondary">[[item.project_id]]</div>
</div>
<a href$="{{_getProject(item.project_id)}}"><iron-icon icon="assignment"><iron-icon></a>
</div>
</div>
</template>
<script>
Polymer({
_getProject: function(url) {
return 'webservices/api/projects/' + url
}
});
</script>
</iron-list>
</template>
你在 iron-list 中的 Polymer({...})
调用不会像你预期的那样工作(它实际上应该在控制台中显示错误),因为你不是 defining/can' t 在 iron-list
中定义一个自定义元素,但只定义一个将被标记的模板。
有两种方法可以达到你想要的效果。
定义您在
中使用的自定义元素iron-list
<dom-module id="my-item"> <template> <div class="item"> ... <a href$="{{_getProject(item.project_id)}}">...</a> </div> </template> <script> Polymer({ is: 'my-item', properties: { item: Object }, _getProject: function(url) { return 'webservices/api/projects/' + url } }); </script> </dom-module> <iron-list items="[[data]]" as="item"> <template> <my-item item="[[item]]"></my-item> </template> </iron-list>
在主模板上定义
_getProject
函数<template is="dom-bind" id="app"> ... <iron-list items="[[data]]" as="item"> <template> <div> <div class="item"> ... <a href$="{{_getProject(item.project_id)}}">...</a> </div> </div> </template> </iron-list> </template> <script> var app = document.getElementById('app'); app._getProject = function (url) { return 'webservices/api/projects/' + url } </script>