离子选项卡在选择后运行功能
ion-tabs run function after selection
我有一个ionic应用程序,它有一个选项卡式界面,在一个选项卡上有一个代码编辑器,在另一个选项卡中有一个预览区(使用用户的代码)。我想完成两件事,这两件事都遇到了同样的问题:
<ion-tabs>
<ion-tab title="Code" on-select="ace.edit('editor')">
<ion-content>
<div id="editor"></div>
<ion-content>
</ion-tab>
<ion-tab title="Preview" on-select="compileAndPreviewCode()">
<ion-content>
<canvas id="previewCanvas"></canvas>
<ion-content>
</ion-tab>
</ion-tabs>
1) 一旦选择了代码编辑选项卡,并且在选项卡的内容被注入DOM之后,我想运行一个函数来激活我的代码编辑器。
- 如果我用on selected回调注册函数,它将在创建#codeEditordiv之前被调用
- 如果我在选项卡内容区域(与#editordiv一起创建)的脚本标记中调用函数,那么脚本就不会执行(请参阅查看此问题
- 如果我在应用程序中包含JQuery,试图让这样的脚本自动执行,那么ionTabs控制器就会中断
- 如果我尝试在编辑器div上使用
onload
事件来调用该函数,它不会被执行
2) 选择预览选项卡时也会出现同样的问题。我想编译代码并将其注入到canvas元素中,但在创建canvas元素之前无法完成此操作。
那么,有人知道在创建了ion-tab
的ion-content
中的DOM之后如何调用函数吗?
想明白了。
问题#1:
正如我在问题中提到的,问题是on-select
是在创建div
之前执行的,并且常规回调(如onload
)在由角度元素注入的模板中不起作用。可以通过使用相应的角度指令来修复此问题。因此,您可以在编辑器div中使用ng-load
。
<!-- Note: callAceEdit() needs to be attached to $scope -->
<div id="editor" ng-load="callAceEdit()"></div>
问题2:
基本问题:
- 代码编辑器(包含处理代码)和目标画布(我们希望将所述代码注入到其中)永远不会同时存在
解决方案:
- 在取消选择代码选项卡时保存代码,并在加载画布时注入存储的值
完整解决方案
<ion-tabs>
<ion-tab title="Code" on-deselect="saveCode()">
<ion-content>
<div id="editor" ng-load="callAceEdit()></div>
<ion-content>
</ion-tab>
<ion-tab title="Preview">
<ion-content>
<canvas id="previewCanvas" ng-load="injectSavedCode()"></canvas>
<ion-content>
</ion-tab>
</ion-tabs>
相关文章:
- '.在'单击“不运行”功能
- 流星 - 观察自动运行功能内未运行
- on点击不运行功能??(可能是Javascript错误?)
- 加载检查单选按钮值并运行功能
- 如何在浏览器中完成图像大小调整后运行功能?(JS/JQuery)
- 在IE中下载文件时运行功能
- 应用程序关闭前的离子运行功能
- 离子选项卡在选择后运行功能
- 检查URL和运行功能
- Chrome扩展赢得't点击按钮运行功能
- 检查时间差是否小于45分钟,并运行功能-AngularJS
- 对输入更改和复选框更改运行功能
- 如何运行功能与参数点击
- 混淆自动运行功能
- 选择按钮运行功能
- 运行功能按钮点击作为创建者用户-谷歌电子表格
- 离子应用程序运行功能在第二次点击
- 谷歌图表-运行功能后绘制
- 具有对焦运行功能的按钮在'输入'
- Onchange选择运行功能