AngularJS种子中的多个ng-App代码段是什么意思?

时间:2015-09-15 05:38:06

标签: javascript angularjs

此代码位于https://github.com/angular/angular-seed/blob/master/app/index.html

我觉得很奇怪。代码将所有ng-app注释掉。 AngularJS如何加载模块myApp

 <!DOCTYPE html>
    <!--[if lt IE 7]>      <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]>         <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]>         <html lang="en" ng-app="myApp" class="no-js lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!--> <html lang="en" ng-app="myApp" class="no-js"> <!--<![endif]-->

1 个答案:

答案 0 :(得分:2)

ng-app指令用于引导AngularJS应用程序。这是应用程序的范围。

Docs

  

使用此指令自动引导AngularJS应用程序。 ngApp指令指定应用程序的根元素,通常放在页面的根元素附近 - 例如在或标签上。

在上面的代码中,注释适用于具有相应版本的IE。

<!--[if lt IE 7]>      <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->

这只会在IE 7中呈现。因此,将特定类添加到html标记元素。这将允许我们专门为IE-7添加样式。

此外,如果您想使用某些代码专门用于IE-7

,这将非常有用

实施例

if ($('html').hasClass('lt-ie7')) {
    // IE 7 specific code
}

在CSS中的OR

.lt-ie7 mySelector {

}

什么是no-js类?

这是一个 hack ,许多开发人员使用它来检测Javascript是否被禁用,以及从JS动态设置的CSS的回退样式。

如何吗

使用Javascript删除该类,并在禁用Javascript时将此类用作添加样式的祖先。

在CSS中:

.no-js mySelector {
    /* JS is disabled */

    /* Fallback to CSS */
}