2016-11-23 59 views
0

我使用的是Ember.js 2.8.2版。如何在Ember.js中創建條件鏈接?

只有條件爲真時,我纔想包裝link-to中的東西。

首先嚐試

{{#if isAdmin}} 
    {{#link-to admin}} 
    contents here 
    {{/link-to}} 
    {{else}} 
    contents here 
{{/if}} 

問題:代碼不是乾的,因爲內容重複兩次。

我該怎麼做?謝謝。

+0

對我來說,你的代碼看起來不錯,因爲沒有設置條件檢查在鏈接到幫手 – kumkanillam

+1

@kumkanillam代碼的作品,但它不幹。實際上我的內容有很多行,做這樣的複製和粘貼是可以實現的。我正在考慮更好的方式來做到這一點。 –

+0

那麼你是否可以創建組件幷包含它,以便你可以將它寫在一個地方並在任何地方使用它。 – kumkanillam

回答

5

第一種選擇:

如果你想從你的DOM中移除,換你「鏈接到」組件作爲組件(我的管理員 - link.hbs):

{{#if isAdmin}} 
    {{#link-to admin}} 
    {{yield}} 
    {{/link-to}} 
{{else}} 
    {{yield}} 
{{/if}} 

不是用它作爲:

{{#my-admin-link}} 
    your content 
{{/my-admin-link}} 

第二個選項:

使用禁用的鏈接到disabledClass:

{{#link-to admin disabled=isNotAdmin disabledClass='showastext'}} 
    your content 
{{/link-to}} 

在你app.css showastext可以定義爲:

.showastext{ 
    text-decoration: none; 
    cursor: text; 
    color: black; 
}