需要一些帮助建立一个网址在铁列表项目



我遇到了一个和这个问题类似的问题。

然而,我的情况有点不同,我似乎不能让它工作。我已经玩了一段时间了,到目前为止还没有运气。我需要把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>

您在铁列表内部的Polymer({...})调用不会像您期望的那样工作(并且它实际上应该在控制台上显示错误),因为您没有定义/不能定义iron-list内部的自定义元素,而只是一个将被标记的模板。

有两种方法可以达到你想要的。

  1. 定义一个在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>
    
  2. 在主模板上定义_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>
    

最新更新