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