2017-04-27 75 views
0

代码就像下面的工作正常Chrome,但在Firefox我使用聚合物时,遇到下列错误1.9.1DOM,如果在Firefox不能使用的功能“如果”价值

[未定义:: _annotatedComputationEffect]:计算方法hasMoreData没有定义

<template> 


    <template is="dom-repeat" items="[[sections]]"> 
     <div> 
      <template is="dom-if" if="{{hasMoreData(item)}}"> 
       <div name="loadMore">load more</div> 
      </template> 
     </div> 
    </template> 
</template> 
<script> 
    HTMLImports.whenReady(function() { 
     Polymer({ 
      is: 'listing-collection', 
      //...other stuff... 
      hasMoreData: function(item) { 
       return true; 
      } 
     }); 
    }); 
</script> 

这是很无奈的是一些基本的东西似乎不工作的文件说,在一个特定的新版浏览器,而在另一个正常工作的方式。像这样的东西:(让我担心在生产中使用的聚合物。我面临其他跨浏览器的问题,但他们身边工作,但这次我觉得框架终于把我推在边缘:)

+0

您使用两个范围,所以你不能得到这个功能。尝试发送它像一个道具从重复模板,如项目 – Dmitry

+0

谢谢你的答复。你能告诉我一个例子代码中的“你的意思是把它像道具一样从重复的模板中像道具一样发送出去”吗? – lee

+0

我很抱歉,这是我的错误。我检查了你的方法,如果我们没有使用'HTMLImports.whenReady'回调就可以正常工作,因为它在'webcomponents'准备好之前就被触发了。 [了解更多关于它(http://stackoverflow.com/questions/37017594/what-is-the-difference-between-htmlimports-whenready-and-window-addeventliste) – Dmitry

回答

0

所以我最后不得不做的是移动有条件的“加载更多”,以它自己的组件,像这样

<load-more section="[[item]]"></load-more> 

,然后使用DOM,如果在这样的

<dom-module id="load-more"> 
    <template> 
     <template is="dom-if" if="[[hasMoreData(section)]]"> 
      load more 
     </template> 
    </template> 
</dom-module> 

<script> 
     HTMLImports.whenReady(function() { 
      Polymer({ 
       is: 'load-more', 
       properties: { 
        section: { 
         value: {}, 
         type: Object 
        } 
       }, 
       hasMoreData: function (section) { 
        return section.Listings.length > 0 && section.Listings.length < section.Filter.Count; 
       } 
      }); 
     }); 
</script> 

成分为什么我应该这样做这个?为什么它在Chrome而不是Firefox中使用更简单的方式?

谁知道,但我已经有太多的这些类型的聚合物与怪异的问题它是一个巧合。

抱歉,谷歌,我真的很想状聚合物,但我开始后悔选择它。一切都有一个学习曲线,但是太多事情在一个浏览器中正常工作,在另一个浏览器中完全失败,或者只是尝试使用文档中显示的框架(其中一些错误或过时)而触发的奇怪边角情况。

我认为Web组件有潜力堆,但聚合物,至少我使用的版本,但并不是Web组件的好广告。

遗憾的是,此图约的角度还不如适用于聚合物也和我有this guy's feelings about polymer同意。

enter image description here

我会尽量让我的当前项目工作,我可能已经走得太远了下来这个兔子洞,现在改变我的技术选择,但如果事情继续下去,他们一直是这样,我有一种感觉,我会尽可能地避免聚合物。