1
我正在嘗試構建一個帶有角度js的多步表單(嚮導)。使用ui路由器的多個步驟形式(嚮導)?
據我所知,我必須映射每個步驟到自己的控制器和視圖(模板)。但在我看來,如果我這樣做,那麼在每個步驟視圖中定義的模型將僅限於特定控制器的範圍。
由於我想提交表單末尾所有步驟中填寫的所有數據,我不知道應該如何編碼以確保模型在所有步驟之間共享?
我正在嘗試構建一個帶有角度js的多步表單(嚮導)。使用ui路由器的多個步驟形式(嚮導)?
據我所知,我必須映射每個步驟到自己的控制器和視圖(模板)。但在我看來,如果我這樣做,那麼在每個步驟視圖中定義的模型將僅限於特定控制器的範圍。
由於我想提交表單末尾所有步驟中填寫的所有數據,我不知道應該如何編碼以確保模型在所有步驟之間共享?
我想給你的建議是將你的模型暴露給使用service \ factory的每個步驟。 每一步都可以訪問工廠公開的模型並更新該模型。你的工廠看起來像東西
angular.module("myApp").factory("Wizard",[function() {
function WizardModel() {
//Model Properties
this.title="Test"
}
var wizardService={};
wizardService.model=new WizardModel();
wizardService.init=function() {
//instantiate a new model object wizardService.model={};
}
return wizardService;
}])
你現在可以注入這項服務在你的控制器。在開始嚮導之前,請致電init
重新初始化模型並使用model
屬性獲取當前模型。
嗨Chandermani,所以當你說我不能將這項服務注入到我的控制器時,我應該如何訪問控制器內的模型? – mr1031011
對不起,這是一個錯字。您可以在控制器中注入此服務:) – Chandermani
謝謝,最後一件事可能與angularjs無關。如果我在我的控制器中分配$ scope.model = WizardService.model,那麼如果我的範圍上的模型發生變化,那麼JS也會自動更改WizardService,或者我應該總是回退? – mr1031011