是否有任何理由不允许从所有局部视图访问所有数据


Is there any reason not to allow access to all data from all partial view?

是的。这个问题出现在代码点火器上,但它与代码点火器并没有真正的关系,因为每个MVC php web应用程序都可能会遇到这个问题。

将MVC视为应用程序设计,让我们假设一个view被划分为partial views。默认情况下,partial views有自己的数据,就像view有自己的一样。现在我想知道:有什么理由不允许partial views访问view的数据吗?

局部视图是为了简化在前端开发单个模块或组件,而不需要所有全局参数。

为了代码的可用性和一点带宽,最好将发送的参数分开

如果您真的希望传递所有参数,那么只需选择另一个视图样板,而不是局部样板。

我不是OOP之神,但我使用了decorator模式来构建视图(我自己滚动,因为我不喜欢codeigniter/zend等中的模板(。

在构建页面方面,(在我看来(部分视图能够与父视图通信是至关重要的——如果部分视图的组件需要一些外部资源(如特定的javascript文件(,它应该能够告诉布局将其包含在页面的头部,而无需访问自己来进行更改。

因此,我认为局部视图不应该访问该视图,但必须与它进行通信,否则,您正在构建该局部视图对该视图的依赖关系,这可能会阻止其中一个或两个视图在其他地方使用。

通常,最好只向视图(或者在本例中为部分视图(提供需要正确渲染的数据。

这迫使开发人员在修改任何组件之前都要三思而后行,并防止视图/局部视图之间的责任混合。这也增强了可重用性,因为您不会面临部分视图需要访问数据的风险,而这些数据可能不会在部分视图使用的每种情况下都存在。

RubyonRails的默认答案是否定的。部分可以被视为相应视图的子级。

如果你做一些异步数据编辑-vodoo,可能会有一些问题。

除此之外,保持简单和愚蠢。。视图的一部分知道视图知道什么。。。