我正在嘗試動態應用主題。我通過在網站上輸入HEX顏色來獲得主色和重點色,然後生成顏色圖等等。地圖看起來是這樣的,一旦我做:適用於動態主題的自定義調色板
{
"50": "8080ff",
"100": "6666ff",
"200": "4d4dff",
"300": "3333ff",
"400": "1a1aff",
"500": "0000ff",
"600": "0000e6",
"700": "0000cc",
"800": "0000b3",
"900": "000099",
"A100": "9999ff",
"A200": "b3b3ff",
"A400": "ccccff",
"A700": "000080"
}
我然後創建使用主題提供了一個全新的調色板(其中customPrimary
是我上面的對象):
this.themeProvider.definePalette('customPrimary', customPrimary);
我this.themeProvider
是我$mdThemingProvider
從我的App.Config.ts
發送,我定義主題提供程序等。基本上this.themeProvider = $mdThemingProvider
。之前你問得太多了,去閱讀這樣的:https://github.com/angular/material/issues/5502
我然後生成一個新的主題,並設置調色板等:
this.themeProvider.theme('whatever').primaryPalette('customPrimary').accentPalette('customAccent');
this.$mdTheming.generateTheme('whatever');
this.themeProvider.setDefaultTheme('whatever');
this.Theme = "whatever";
當我打我的頁面,該頁面主題保存按鈕改變爲白色,我得到這個錯誤:
Cannot read property 'colors' of undefined
我不能追溯到哪裏colors
定義。我當然沒有一個名爲colors
的變量。這似乎是應用調色板的主題是做錯了。有些東西看起來不正確。
如果我將調色板更換爲類似"blue"
的東西,它工作正常。設置我的自定義調色板不起作用。
我在做什麼錯?不幸的是我不能提供一個例子,所以請讓我知道你是否需要更多信息。由於
我試圖複製這個問題,但沒有成功。我已經根據你的代碼創建了一個CodePen(http://codepen.io/camden-kid/pen/qNzEWO?editors=1010),但是當點擊**添加主題**按鈕時不會出錯。兩件事,雖然:(1)我不明白這部分this.Theme =「無論」;',(2)我*做*如果我改變**類似的錯誤**任何**到**默認**在第34行,但這並沒有真正的幫助,我懷疑。另外,點擊按鈕時,主題看起來不會改變。 –
@camden_kid當我做'this.Theme =「什麼」;'我改變了應用程序的整體主題。我在我的身體標籤上設置了'md-theme =「vm.Theme」',所以無論何時更改主題(因爲我有一個默認主題和一個用戶設置),主題都會更改爲新主題,而不是更新默認主題。另外,我似乎無法讓你的工作。當我按下按鈕時它不會改變主題。 – MortenMoulder
對不起,我應該把我的最後一行作爲第一行。是的,它不會改變主題。我只想指出,我沒有得到你的錯誤。我會更深入地探討爲什麼主題不會改變...... –