AngularJs始终将类最后应用于body标签

时间:2017-10-13 15:33:28

标签: javascript html css angularjs

我们body的{​​{1}}标记中包含以下内容:

index.html

我们这样做,所以我们可以从该页面的路线将类应用到某个页面,如:

<body ng-controller="AppController as app"  
      class="site-body {{$state.current.data.bodyClass}}">

这可以按预期工作。现在,我正在尝试将另一个类应用于 .state('about-theteam', { url: '/about/theteam', data: { pageTitle: 'The Team', access: 'private', bodyClass: 'about' },... 中的body标签,以应用需要最后的“主题”,以便它可以覆盖默认的css:

index.html

然而,令我懊恼的是,绑定的类忽略了顺序,无论如何都是最后一个,打破主题:

<body ng-controller="AppController as app"  
      class="site-body {{$state.current.data.bodyClass}} theme-ocean">

这是为什么?不应该绑定在html中的顺序,就像我做

之类的东西
<body ng-controller="AppController as app" 
      class="site-body theme-ocean about">

为什么在class属性中它总是附加到结尾?

请注意,我正在尝试一个解决方案,其中我的开发人员可以简单地将主题添加到他们的主页面,并通过css实现主题级联的效果,而无需任何额外的工作。这适用于路线中没有 My name is {{name.first}} {{name.last}}, nice to meet you. 的所有网页。

1 个答案:

答案 0 :(得分:0)

希望这可以帮到你:

你可以获得元素&#34; classList&#34;并查看课程顺序。

var element = document.getElementsByClassName("site-body");
$scope.classList = element[0].classList;

我为你做了一个演示: http://jsfiddle.net/ADukg/14988/

在这个例子中,&#34;角度等级&#34;如你所说,位于中间而不是最后。