Rails苗条"如果"陈述和嵌套标签

时间:2016-08-11 05:42:09

标签: slim-lang

我在rails slim布局中有以下代码:

- if content_for(:body_tag)
  yield :body_tag
- else
  body

:body_tag模板通常会包含body ng-controller='myAngularAppController'之类的内容,例如

问题是我所做的任何后续命令都不会嵌套在body标签内。如果我写

- if content_for(:body_tag)
  yield :body_tag
- else
  body
.container
...

body标记将在容器启动前关闭。如果我写

- if content_for(:body_tag)
  yield :body_tag
- else
  body
    .container
  ...

当指定:body-tag时,容器根本不会渲染。

我认为这是一个常见问题。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果body上唯一具有动态效果的是ng-controller属性,我建议您这样做:

body ng-controller=content_for(:controller)

不要使用:body_tag标识符指定整个标记,只需静态指定body标记(因为 静态)和要与之一起使用的动态控制器一个:conroller(或任何你想称之为)的标识符。