我们的角度应用有一个流程 - 第一步,第二步,第三步。在步骤3中,可以选择从步骤1开始新流程。 重要的是,流之间没有数据混合。 这种流程的最佳设计是什么? 这些步骤共享数据,所以我怀疑我需要一个控制器,但是如何确保每次迭代都初始化(我不想写一个“init”方法)
答案 0 :(得分:1)
我会将每个步骤作为指令编写,并通过双向绑定传递整个状态。状态将保留在控制器的范围内,并且在完成流程后返回第一步时需要重置。
例如,您可以在流程结束时使用“重新开始”按钮,从而清除范围内的状态。控制器会看到并立即显示第一步,没有所有旧数据。如果使用ngIf,那么当允许显示时,指令将干净地初始化。
控制器模板示例:
<div>
<div myflow-step1="yourData" ng-if="!yourData.step || yourData.step == 1"></div>
<div myflow-step2="yourData" ng-if="yourData.step == 2"></div>
<div myflow-step3="yourData" ng-if="yourData.step == 3"></div>
</div>
步骤3中的“重新开始”按钮就是:
$scope.yourData = {};