This nice article建议不要跟踪模型中属于模型的视图。对面怎么样?建议视图跟踪它们所基于的模型?
似乎很难想象没有。也许推荐的方法是使用事件或什么?
答案 0 :(得分:6)
视图始终保留对模型的引用。它可以通过myView.model或myView.collection.models访问。
由于视图的性质,我无法想象您希望视图不了解模型的情况。事件绑定在视图中发生,并引用模型。 (想想collection.add事件。如果你没有绑定到对集合的引用,那就不可能了)
答案 1 :(得分:0)
大多数情况下,视图应该知道其模型,因为他是模型的可视化。因此模型可以在没有视图的情况下存在,但是没有模型的视图没有多大意义。
但是一如既往,有些情况下视图不应该直接知道它的模型。想想用户可以添加产品的篮子,也许他可以配置这些产品。您可以使用不同的视图来显示模型,例如带有产品的表格,带有产品数量的篮子图标以及显示总金额的视图。所有人都拥有相同的模型。因此,当用户创建新模型时,他会删除旧模型或订购某些东西,然后在新的模型之后,您必须创建一个新模型并将其传递给您的视图。当然你可以通过发射事件来解决这个问题。但是您也可以将模型的代理传递给您的视图,因此视图始终与您的代理通信,并且他们永远不会知道有时会创建新模型。