路由时更新HTML标记上的ng-class

时间:2013-12-26 23:25:02

标签: angularjs google-chrome-extension angular-routing ng-class

我正在使用AngularJS编写Chrome扩展程序。 UI通过浏览器操作弹出窗口提供,随着内容的更改,我有时需要更改弹出窗口的大小。我能够做到这一点的唯一方法是通过类的条件更新来改变HTML和BODY标签上的CSS大小调整属性,即

<!DOCTYPE html>
<html lang="en" ng-app="oApp" ng-controller="QuestionsCtrl" ng-class="{true:'expand'}[doExpand]">
<head>
...
</head>
<body ng-class="{true:'expand'}[doExpand]">
...

我点击了一个设置'doExpand'的控件,这很好用。但是,我现在正在更新应用程序以使用路由来显示多个视图。在这样做时,我正在删除内联控制器声明......

<!DOCTYPE html>
<html lang="en" ng-app="oApp" ng-class="{true:'expand'}[doExpand]">
...

...并在路由配置中定义它:

var oApp = angular.module('oApp', ['ngRoute', 'oControllers']);
oApp.config(['$routeProvider',
function($routeProvider) {
    $routeProvider.
    when('/login', {
        templateUrl: '/partials/login.html',
        controller: 'LoginCtrl'
    }).
    when('/board', {
        templateUrl: 'partials/board.html',
        controller: 'QuestionsCtrl'
    }).
    when('/board/:questionId', {
        templateUrl: 'partials/question-detail.html',
        controller: 'QuestionDetailCtrl'
    }).
    otherwise({
        redirectTo: '/login'
    });
}
]);

路由正在运行,但问题是HTML标记现在超出了控制器的范围,因为现在它们位于视图本身上。我可以在我想的视图中粘贴BODY标记,但不能对HTML标记执行相同操作,因为JS包含需要在头部等等(以及其他原因)

有人可以就如何处理这种情况向我提供建议吗?谢谢!

0 个答案:

没有答案