我正在尝试使用角度js构建多步形式(向导)。
据我了解,我必须将每个步骤映射到自己的控制器并查看(模板)。但在我看来,如果我这样做,那么每个步骤视图中定义的模型将仅限于特定控制器的范围。
由于我想提交表格末尾所有步骤中填写的所有数据,我想知道如何编码以确保所有步骤共享模型?
答案 0 :(得分:1)
我建议您使用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
属性获取当前模型。