我应该如何为 angularJS ui-router 声明我的命名空间,以便它在 html 和 VS 2013 中有效?

Posted

技术标签:

【中文标题】我应该如何为 angularJS ui-router 声明我的命名空间,以便它在 html 和 VS 2013 中有效?【英文标题】:How should I declare my namespace for angularJS ui-router so it's valid in html and VS 2013? 【发布时间】:2014-06-29 20:35:58 【问题描述】:

在我的 index.html 中,我定义了以下内容:

<html class="dark"
      ng-app="app"
      ng-controller="appController"
      id="ng-app"
      xmlns:ng="http://angularjs.org"
      ng-app="optionalModuleName">

在我的代码中:

 <a ui-sref="home.content( content: 'overview' )"
    ui-sref-active="current">

据我了解,某些版本的 IE 需要 xmlns:ng="http://angularjs.org 来识别不同的命名空间。

现在我也在使用 ui-router。那么我应该如何声明命名空间呢?

我假设xmlns:ui,但在那之后我应该放什么?

同样在 VS2013 中,它也是无效的。有没有办法告诉 VS2013 忽略它在 HTML 中看到的 ui-?

【问题讨论】:

【参考方案1】:

首先要明确一点-您将索引站点命名为index.html。这让我有点困惑,因为命名空间仅在 xml 文档中使用时才有效。对于html,它将是xml 应用程序xhtml。如果您不知道区别,请在网络上阅读。有很多很好的教程和文章解释了htmlxhtml之间的区别。

回到你的问题:据我从他们的源代码中可以看出,ui路由器是用有效的angularjs开发的,用法就像使用angular指令一样,所以你应该只包括angularjs命名空间到你的根元素。 也请阅读以下文档以进一步了解如何使 angularjs 与 Internet Explorer 兼容:https://docs.angularjs.org/guide/ie

关于你的第二个问题,我不知道你是否可以设置 VS2013 来忽略某些属性,但是从 html5 开始,你可以在它们之前添加 data- 以使其有效 (x)html。 如此处所述:https://docs.angularjs.org/guide/directive 在这里:http://www.w3schools.com/tags/att_global_data.asp

例如:

<a data-ui-sref="home.content( content: 'overview' )"
    data-ui-sref-active="current">

【讨论】:

以上是关于我应该如何为 angularJS ui-router 声明我的命名空间,以便它在 html 和 VS 2013 中有效?的主要内容,如果未能解决你的问题,请参考以下文章

angularJs模块ui-router之路由控制

angularJs模块ui-router之路由控制

AngularJS ui-router (嵌套路由)

ui-router 中的 AngularJS 组件/范围问题

如何查看 AngularJS / UI-Router 中配置了哪些状态?

Angularjs中使用ui-route如何异步加载组件?