2016-06-14 84 views
0

非常感謝您的SRC。我終於得到了一個好成績。問題是我不理解Google提供的函數getUrl()的標準用法。如何改變谷歌聚合物的鐵圖像元素

新問題: 閱讀有價值的答案,我想剩下的問題如下。 讓我問一下,如果在舊問題的上下文中設置了初始src值後,如何更改鐵頁對象的src值。

老問題: 讓我問一下Google聚合物。 下面是我的項目中的一些代碼。 我只是想改變一個iron-image元素的src。 我測試了兩個版本的「準備就緒」功能。然而,兩人都未能改變鐵圖像元素的src。你能指出我的代碼中哪裏出錯了嗎?

<iron-image id="id1" src="[[mysrc]]"></iron-image> 

    Polymer({ 

    properties { mysrc = { type:String , notify:true } }, 

    (version 1) ready: function() { mysrc = getUrl(); } 

    (version 2) ready: function() { this.$.id1.src = getUrl(); } 

    }) 

詳細來說,alert(getUrl())會顯示預期的正確字符串。

+0

沒有理由爲什麼你的代碼不應該工作。你能在這裏或在Plunker,JSbins等上發佈更完整的例子嗎? –

+0

使用'this.mysrc = {something}'改變任何函數的'mysrc'值應該改變'src'的值 – a1626

+0

請爲新問題選擇一個新線程。如果你有答案,你可以隨時回答你自己的問題。如果需要,您還可以在舊的問題中添加鏈接。 – a1626

回答

1

難道你沒有從正確的上下文中調用你的屬性和方法嗎?要設置屬性並調用方法,您需要從this中引用它們。換句話說,

--- ready: function() { mysrc = getUrl(); } 
+++ ready: function() { this.mysrc = this.getUrl(); } 

這裏有一個JS斌,妥善處理您所描述的情景:

<!doctype html> 
<html> 

<head> 
    <meta name="description" content="http://stackoverflow.com/questions/37811023"> 
    <meta charset="utf-8"> 
    <base href="http://polygit.org/components/"> 
    <script href="webcomponentsjs/webcomponents-lite.min.js"></script> 
    <link href="polymer/polymer.html" rel="import"> 
    <link href="iron-image/iron-image.html" rel="import"> 
    <link href="paper-button/paper-button.html" rel="import"> 
</head> 

<body> 
    <dom-module id="my-el"> 
    <template> 
     <iron-image src="[[url]]"></iron-image> 
    </template> 
    <script> 
     Polymer({ 
     is: 'my-el', 
     properties: { 
      url: { 
      type: String, 
      notify: true 
      } 
     }, 
     ready: function(e) { 
      this.url = this.getUrl(); 
     }, 
     getUrl: function() { 
      return 'http://lorempixel.com/300/300'; 
     } 
     }); 
    </script> 
    </dom-module> 
    <my-el></my-el> 
</body> 

</html> 

https://jsbin.com/wanemi/edit?html,output

+0

謝謝你的回答。它幫助我很多。在我的情況下,它沒有奏效。可能是因爲我的getUrl()太遲了,所以它在iron-page被設置爲其初始src值之後返回一個空值。所以可能,我最後的問題很簡單。也就是說,如何在設置初始src值後更改鐵圖像的src值。 – yuzu

+0

@KayceBasques僅供參考,我注意到你已經鏈接到** http **://jsbin.com,最終被重定向到** https **://jsbin.com。演示的''指向** http **,這導致了「混合內容」錯誤和空白頁面。 – tony19

+0

感謝@ tony19的領導 –

0

你應該嘗試

ready: function() { this.mysrc = getUrl(); }

ready: function() { this.set('mysrc', getUrl());

在版本1您引用不存在的變量,因爲一個屬性綁定到this

在版本2中應該工作。

+0

下面的答案,我再次嘗試了兩個版本,但得到了同樣的不好的結果。 「src」沒有改變。版本1不會產生錯誤,而版本2則會說:「this。$。id1.src」未定義。 – yuzu