问题:
当用户重新进入路由时,我在重新使用旧控制器实例时遇到了概念问题。在许多示例中,控制器将用户交互的状态存储在实例变量中。当用户重新进入控制器时,这些应该被重置,但没有明确的机制来这样做。
因此,必须有充分的理由使用单个控制器实例。它是什么?
我是如何解决这个问题的:
我在 Ember 应用程序中遇到了一个错误,控制器根据其他地方的用户操作保持本地状态不同步。控制器保持用户是否正在编辑“案例”的“名称”的状态。当控制器被实例化时,它被设置为“true”,但是当用户取消时,它被设置为“false”。然后用户离开到不同的路线并返回到相同的路线。我得到了相同的控制器实例,它已经具有“false”来编辑名称。我希望有“真实”。
Ember 与 Rails:
我来自 Rails 的角度,控制器为每个请求实例化。请求之间没有共享控制器状态。所有实例变量都是请求的本地变量,因此可以安全使用。
回到问题:为什么 ember 在单独访问路由时使用相同的控制器实例?