2016-06-10 21 views
2

當我將值綁定到面板標題時,出現問題。綁定值到面板標題

我的代碼基本上是這樣的:

Ext.define('serviceteamWorkflow.view.core.ServiceteamWorkflow', { 
    extend: 'Ext.Panel', 
    bind: { 
     title: 'First Name : {firstName} Last Name : {lastName}' 
    }, 

}) 

的問題是,沒有任何顯示在標題時綁定一個值是null或undefined。 IE瀏覽器。如果其中一個綁定值無效,那麼整個事件將不會顯示。

如果綁定值無效,我想只顯示任何內容。即:

姓:名稱:母鹿

有沒有辦法解決?

+3

默認的firstName/lastName的值在視圖模型數據空字符串。 –

+0

你也可以使用公式解決這個問題嗎? –

+0

我想,但提供默認值更容易。 –

回答

1

您可以創建一個將引用您的綁定您的視圖模型的公式:

Ext.define('serviceteamWorkflow.view.core.ServiceteamWorkflow', { 
extend: 'Ext.Panel', 
bind: { 
    title: {showTitle} 
}, 

})

然後你ServiceteamWorkflow視圖模型裏面:

requires: [ 
    'Ext.app.bind.Formula' 
], 

data: { 
    firstName: '', 
    lastName: 'Johnson' 
}, 

formulas: { 
    showTitle: function(get) { 
     var firstName = get('firstName'), 
      lastName = get('lastName'); 

     return "First Name : " + firstName + " Last Name: " + lastName; 
    } 
} 
+0

這與綁定OP中的標題完全相同。 get()調用以相同的方式創建依賴關係。 –

+0

是的,但這會顯示showTitle中的整個字符串減去缺少的名字 – michwalk

+0

因此將添加默認的空值。 –

1

對於那些誰像我想知道如何設置Evan Trimboli在第一條評論中建議的默認值viewmodel,它應該設置在一個視圖:

viewModel: { 
    data: { 
     firstName: '', 
     lastName: '' 
    } 
} 

如果你設置你的數據動態的地方,例如:

this.getViewModel().set('fullName', data); 

你需要設置的默認值是這樣的:

viewModel: { 
    data: { 
     fullName: { 
      firstName: '', 
      lastName: '' 
     } 
    } 
}