Javascript 如何在页面加载后自动触发角度指令
我有一个print指令,当Javascript 如何在页面加载后自动触发角度指令,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个print指令,当print=“id”属性位于中时调用该指令。按钮处于用户不可见的模式。一旦模态加载,我需要指令启动。 它会是在模态底部的简单脚本中吗 <a href="#" print="jobSetupPrintPdf"><button>Print</button></a> <script type="text/javascript"> $(window).load(function () { ???
print=“id”
属性位于
中时调用该指令。按钮处于用户不可见的模式。一旦模态加载,我需要指令启动。
它会是在模态底部的简单脚本中吗
<a href="#" print="jobSetupPrintPdf"><button>Print</button></a>
<script type="text/javascript">
$(window).load(function () {
????????
});
</script>
我正在阅读我需要添加$timeout或延迟吗?我不知道如何在这里应用它似乎您真正需要做的就是将打印包装成一个函数。如果仍然需要使用按钮,请立即调用相应的函数,并将其用作单击处理程序
app.directive('print', ['$compile', function ($compile) {
return {
restrict: 'AEC',
link: function (scope, el, attrs) {
function simplePrint(){
window.print();
}
function fancyPrint(){
/* code for other window */
}
if (attrs.nopopup) {
simplePrint();
el.bind('click',simplePrint);
} else {
fancyPrint();
el.bind('click', fancyPrint);
}
}
};
}]);
请记住,如果您在页面中创建html,您需要在打印之前给它一些时间来构建所有内容如何延迟加载函数?取决于页面,但有一点会有所帮助,那就是使用路由的
解析
,以确保在加载模板之前所有数据都可用。还要查看$timeout
<代码>$broadcast也可能有帮助,从控制器代码的其他部分将事件发送到指令
<a href="#" print="jobSetupPrintPdf" id="testing">Print</a>
<script type="text/javascript">
$('#testing').click()
</script>
Error: [$rootScope:inprog] $digest already in progress
app.directive('print', ['$compile', function ($compile) {
return {
restrict: 'AEC',
link: function (scope, el, attrs) {
function simplePrint(){
window.print();
}
function fancyPrint(){
/* code for other window */
}
if (attrs.nopopup) {
simplePrint();
el.bind('click',simplePrint);
} else {
fancyPrint();
el.bind('click', fancyPrint);
}
}
};
}]);