2015-05-02 64 views
0

我不知道怎麼解釋自己,或者如果它甚至有可能,所以這裏有雲的例子:JavaScript的聚合物改變變量的值取決於全局變量

我想「隱藏」變量取值全局變量取決於「標籤」值。

var sport = false; 
var music = true; 

Polymer({ 
    publish: { 
     tag: "sport", 
     hidden: xxxxxx 
    } 
}); 

所以如果標籤是「運動」,我想「隱藏」爲「假」;如果標籤是「音樂」,我希望「隱藏」爲「真實」。

編輯:

的事情是,有幾個變量(類別,如音樂,體育,文化,就業...),這將是true或false取決於用戶是否使它們能切換按鈕或不切換。然後,有關於幾個事件的信息,每個事件都是不同的類別(例如:「明天的足球比賽」是「運動」事件等)。所以,如果用戶禁用其相應的切換按鈕,我希望這些事件條目消失。

因此,想象一下有2項運動,1項音樂和1項工作。當運動的切換按鈕被禁用時,我只想看到2個工作和音樂事件,運動應該消失。

爲此,我想到了這些變量的真或假,因爲我認爲在Polymer中默認情況下將它們的值分配給隱藏屬性很容易。但事實證明,這並不容易。如果你有其他簡單的方法來實現這一點,讓我知道!

謝謝!

+0

功能有什麼問題? 'isHidden:function {return tag ==='music'? true:false}' –

+0

我可能已經解釋了自己的錯誤,但我不認爲這個函數解決了我的問題。事情是,「運動」和「音樂」的價值取決於其他功能,所以這些變量和「標籤」可以是任何東西。此外,運動和音樂只是一些例子,但也有許多其他類型的活動。 – dsesto

+0

也許給更多的例子,也是如何*瓦爾斯*符合圖片?你的例子顯示* sport *爲* false *,但是你說標籤爲* sport *。 –

回答

0

不知道我是否理解你的問題,但有一些方法可以根據變量的值隱藏元素。如果你剛開始使用你的聚合物項目,請檢查版本0.9(已經有很多改變)。

直接:

<div hidden?="{{tag == 'sports'}}">Hey I'm the sport category</div> 

隨着代碼:

<div hidden?="{{hidden}}">Hey I'm the sport category</div> 

Polymer({ 
    publish: { 
    tag: "sport", 
    hidden: xxxxxx 
    }, 
    // The ready function gets called when the Polymer element is ready. 
    ready:{ 
    if (this.tag == "xyz"){ 
     this.hidden = false; 
     // Do other things.. 
    } 
    } 
}); 

在聚合物版本> = 0.8可以使用計算屬性:

<div hidden?="{{computeHidden()}}">Hey I'm the sport category</div> 

Polymer({ 
    is: 'my-element', 
    properties: { 
     tag: String, 
    }, 
    computeHidden: function() { 
    if (this.tag == "xyz"){ 
     return false; 
    }else{ 
     return true; 
    } 
} 
}); 

或作爲屬性聲明:

<div hidden?="{{hidden}}">Hey I'm the sport category</div> 

Polymer({ 
    // define element prototype here 
    is:'my-element', 

    properties:{ 
     hidden:{ 
      type:Boolean, 
      value:function() { 
       if (this.tag == "xyz"){ 
        return false; 
       }else{ 
        return true; 
       } 
      } 
     } 
    } 
    });