2017-04-27 66 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

我會盡量讓我的當前項目工作,我可能已經走得太遠了下來這個兔子洞,現在改變我的技術選擇,但如果事情繼續下去,他們一直是這樣,我有一種感覺,我會盡可能地避免聚合物。