我想使用 ng-include 来呈现template的侧边栏。该模板需要 jQuery metisMenu插件以获取下拉列表。
问题:当我在部分模板' sidebar.html'中加载以下脚本时,仅限工作:
<script src="//cdnjs.cloudflare.com/ajax/libs/metisMenu/1.1.0/metisMenu.js"></script>
<script>$(function() {
$('#side-menu').metisMenu();
});</script>
当我尝试在index.html 中加载时,和失败。
我想在 index.html 中只加载一次插件,因为我也可能在其他部分中需要它。这是工作模型的Plunker,需要在部分内部加载脚本。请注意,在将脚本从 sidebar.html 移动到 index.html 时,下拉菜单会停止工作。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:7)
我有同样的问题。你需要添加metisMenu();在你的主控制器中:
app.controller('mainController', function($scope, Config) {
$('#side-menu').metisMenu();
});
答案 1 :(得分:2)
它可能无法在index.html
上运行,因为当它被解雇时,副菜单还没有出现。这是在AngularJS获得网站部分
<script src="//cdnjs.cloudflare.com/ajax/libs/metisMenu/1.1.0/metisMenu.js"></script>
<script>
$(function() {
var $browser = app.injector().get('$browser');
$browser.notifyWhenNoOutstandingRequests(function () {
$('#side-menu').metisMenu();
});
});
</script>
答案 2 :(得分:2)
在setTimeout函数中添加一个名为$(element).metisMenu()的链接对象,为我修复了它。
Range("R32").Value = Application.WorksheetFunction.Sum(userResponse)
答案 3 :(得分:1)
您可以在ng-include
添加onload回调函数<div ng-include="'sidebar.html'" onload="loaded()"></div>
并在加载的函数中调用metisMenu函数
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.loaded = function() {
$('#side-menu').metisMenu();
}
});
这是Plunker