我正在使用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包含需要在头部等等(以及其他原因)
有人可以就如何处理这种情况向我提供建议吗?谢谢!