May 02 2008

:object、:collection和:locals的分别

Posted by admin

Tags:

书上这样描述它们:

:object参数用于传递实例变量给局部模版的对象,局部模板可以通过本地名为局部模板名的变量访问该对象。如果传递给局部模板的对象是一个控制器实例变量,并且变量名与局部模板名相同,你就可以省略:object参数。
:collection将局部模板应用于集合中每个成员
:locals传递局部变量,指出局部模板的参数。

这三者的用途都是用来向局部模板传送变量值,使局部模版可以使用外部数据。但使用:object和:collection时,局部模版的变量必须和模板的名称一样,否则会出错。
:object可以指定局部变量的名称,灵活性较大。

但我觉得一般情况下局部模板的变量还是使用和局部模版名相同比较好。当传递一个实例时就不用输入:object,有一串变量时也能用:object把实例变量传递给局部模板里的局部模板名的变量进行迭代。
需要同时render多个变量时才使用使用:collection吧。
:locals的作用就是当局部变量与模板名不同时,使变量能和外部接口接轨。

这只是笔记,如果有错就指出来吧。

Filed under : Uncategorized | No Comments »