【发布时间】:2014-12-02 14:25:55
【问题描述】:
为什么将 AngularJS 添加到页面会破坏它?我该怎么做才能让它正常运行?控件停止渲染。菜单停止扩展。
我正在尝试将现有 Bootstrap 主题的 index.html 页面划分为部分/模板。不幸的是,一旦我将 HTML 从 index.html 中移出,该分页符上的控件就会中断。
我使用的主题是来自 WrapBootstrap.com 的 KingAdmin v1.3:https://wrapboo...
我要添加的唯一标记是...
ng-app="app"
<div ng-include="'shell.html'"></div>
<script src="assets/thirdparty/angular/1.2.26/angular.js"></script>
<script src="assets/app/app.js"></script>
shell.html 仅包含最初在索引中的正文部分...
无角度:
带角度:
INDEX.HTML:
<head>
<title>Dashboard | KingAdmin - Admin Dashboard</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="KingAdmin - Bootstrap Admin Dashboard Theme">
<meta name="author" content="The Develovers">
<!-- CSS -->
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen">
<link href="assets/css/font-awesome.min.css" rel="stylesheet" type="text/css" media="screen">
<link href="assets/css/main.css" rel="stylesheet" type="text/css" media="screen">
<!--[if lte IE 9]>
<link href="assets/css/main-ie.css" rel="stylesheet" type="text/css" media="screen" />
<link href="assets/css/main-ie-part2.css" rel="stylesheet" type="text/css" media="screen" />
<![endif]-->
<!-- Fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/kingadmin-favicon144x144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/kingadmin-favicon114x114.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/kingadmin-favicon72x72.png">
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="assets/ico/kingadmin-favicon57x57.png">
<link rel="shortcut icon" href="assets/ico/favicon.png">
</head>
<body class="dashboard">
<div ng-include="'shell.html'"></div>
<!-- Javascript -->
<script src="assets/js/jquery/jquery-2.1.0.min.js"></script>
<script src="assets/js/bootstrap/bootstrap.js"></script>
<script src="assets/js/plugins/modernizr/modernizr.js"></script>
<script src="assets/js/plugins/bootstrap-tour/bootstrap-tour.custom.js"></script>
<script src="assets/js/king-common.js"></script>
<script src="assets/js/plugins/stat/jquery.easypiechart.min.js"></script>
<script src="assets/js/plugins/raphael/raphael-2.1.0.min.js"></script>
<script src="assets/js/plugins/stat/flot/jquery.flot.min.js"></script>
<script src="assets/js/plugins/stat/flot/jquery.flot.resize.min.js"></script>
<script src="assets/js/plugins/stat/flot/jquery.flot.time.min.js"></script>
<script src="assets/js/plugins/stat/flot/jquery.flot.pie.min.js"></script>
<script src="assets/js/plugins/stat/flot/jquery.flot.tooltip.min.js"></script>
<script src="assets/js/plugins/jquery-sparkline/jquery.sparkline.min.js"></script>
<script src="assets/js/plugins/datatable/jquery.dataTables.min.js"></script>
<script src="assets/js/plugins/datatable/dataTables.bootstrap.js"></script>
<script src="assets/js/plugins/jquery-mapael/jquery.mapael.js"></script>
<script src="assets/js/plugins/raphael/maps/usa_states.js"></script>
<script src="assets/js/king-chart-stat.js"></script>
<script src="assets/js/king-table.js"></script>
<script src="assets/js/king-components.js"></script>
<script src="assets/thirdparty/angular/1.2.26/angular.js"></script>
<script src="assets/app/app.js"></script>
</body>
</html>
2014 年 11 月 25 日更新
我已经确认这不是我。我有一个朋友尝试使用 ng-include 标记将模板中的单个页面转换为 Angular 部分,并将其设置在适当的 Node.JS 服务器后面。他也有同样的结果。一旦 Angular 呈现第一页,大量的功能就会中断。各处的展开/折叠逻辑停止工作。大多数控件都会正确停止渲染。
注意
有人提到这个问题可能是由于使用了 ng-include 标记和部分文件,而部分文件没有控制器。侧边栏、顶部栏、面包屑都通过 ng-include 作为静态 HTML / Jade 文件包含在内。一个路由在主体的控制器中通过,但是这个区域也存在问题。
这里是开发者网站上模板的链接:
这是它目前的样子:
从 index.html 页面快速查看修改:
【问题讨论】:
-
控制台有错误吗?
-
唯一的错误是 jquery 映射文件。该模板不包括所有的 jquery 文件。但是,我添加了一个包含升级后的 jQuery 和所有相关文件的文件夹,并且错误消失了。这并没有改变上述结果。
-
对于 glyphicons 右填充似乎与您的 html 压缩或模板引擎有关,它删除了标签之间的间距。其余的似乎 angular 没有运行
-
您的 html 中是否有 ng-app 指令,或者您是否从 js 手动引导 Angular?
-
简单的答案是切换到angular-ui.github.io/bootstrap,而不是使用jQuery-specific bootstrap JavaScript。
标签: angularjs jquery-ui twitter-bootstrap-3