我可以在身体标签上放置ui-view吗?

时间:2014-07-19 16:59:37

标签: angularjs angular-ui-router

我正在开发一个应用,其标题的样式和用户界面选项会根据用户当前所处的状态而变化。例如,如果用户点击上传编辑个人资料在主菜单中创建播放列表创建图库按钮,这将导致对标题进行以下更改:

  1. 标题的背景改变颜色
  2. 网站徽标将应用CSS3动画以使其滑入新位置
  3. 徽标旁边会显示一个字泡中的特定消息(取决于用户所处的状态)
  4. 取消按钮将显示在标题的右边缘
  5. 这意味着我的网站上没有静态元素,因此逻辑告诉我应该将ui-view放在我的body标签中,从而使它看起来像这样:

    <body ng-app="app" ui-view>
    

    我从未见过在任何地方使用过的东西,所以我怀疑。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

不,请不要那样做!

ui-view标记内部body可能会导致许多JS插件/库无法使用,尤其是在它们动态地向document.body添加一些HTML标记的情况下。在这种情况下,导航到另一个视图会重新初始化document.body,从而忽略以前添加的HTML标记。

E.g。这是Firebase和Angular.js(AngularFire)的情况。我希望每个遇到错误的人

Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

会看到这篇文章。只需确保您未在​​ui-view代码中添加body属性。