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