2017-02-03 53 views
0

我的形式不斷復位禁用復位,有沒有辦法防止這種情況(如果不是出了什麼替代)奧裏利亞 - 在路由器看法,如果我改變路由器視圖選項卡

export class App { 
configureRouter(config, router) { 
config.title = "Aurelia"; 
config.map([ 
    { route: ["", "dashboard"], name: "dashboard", moduleId: "HTML/viewmodels/dashboard", nav: true, title: "Dashboard", settings: "icon-home" }, 
    { route: "addons", name: "addons", moduleId: "HTML/viewmodels/addons", nav: true, title: "Addons", settings: "icon-file" }, 
    { route: "error", name: "error", moduleId: "HTML/viewmodels/error", nav: true, title: "Error", settings: "icon-info-sign" } 
]); 

this.router = router; 
console.log(router); 
    } 
} 

回答

2

這是一個國家持續存在問題。最簡單的解決方案是將保存在狀態:

  • 的父視圖
  • 甲非觀看相關的單獨的類(或靜態變量)
  • localStorage的持續(可能與前一選項一致)

第一種方法:將其保存在父視圖中。

例如,您可以創建App類中的緩存:

export class App { 
    formData = {}; 

    configureRouter(config, router) { 
    { route: ["", "dashboard"], [..snip..] settings: { formData: this.formData, icon: 'icon-home' } } 
    } 
} 

內,您的觀點,您就可以這樣做:

activate(params, routeConfig) { 
    this.formData = routeConfig.settings.formData; 
    this.icon = routeConfig.settings.icon; 
} 

而在HTML,只是將其綁定到formData

<input type="text" value.bind="formData.text" /> 

這種假設,臨時整個App圍繞這種形式。否則,將它存儲在那裏並不太合理。無論如何(我在列表中指出的第一個方法)就是這樣做的一種方法。


另一種方法:單身。

創建一個名爲AppState的新類或其他類。

export class AppState { 
    formData = {}; 
} 

那麼在你看來,你應該導入並注入它:

import { AppState } from './app-state'; 

export class YourView { 
    static inject = [AppState]; 

    constructor(appState) { 
    this.appState = appState; 
    } 
} 

然後在你的HTML,你可以像這樣將它綁定:

<input type="text" value.bind="appState.formData.text" /> 

或者第三種方式:靜態類。

創建一個名爲AppState的新類或其他類。

export class AppState { 
    static formData = {}; 
} 

然後,在你看來,你應該導入並注入它: 進口{}屆時AppState從」。/應用程序狀態';

export class YourView { 
    AppState = AppState; 
} 

然後在你的HTML,你可以像這樣將它綁定:

<input type="text" value.bind="AppState.formData.text" /> 
+0

如果我想我所有的標籤是持久的狀態是什麼,他們有一些其他類我想保留,以及實例 _Edit:_也不是單獨運行的類的默認方式 – CountGradsky

+0

您可以讓單例或靜態類保留所有這些。讓我編輯答案。 – Travo

+0

我還爲其他兩種方法添加了解釋。我建議親自使用正確名稱的單身人士。 – Travo