我的Cordova / Ionic(v1.3.0)应用程序主要包含一个为复杂表单构建HTML的JQuery App。相同的JQuery App用于构建Web浏览器的复杂表单,只有少数地方可以插入特定于移动设备的代码。
我现在试图在垂直滚动的表单中有一个水平滚动的表格部分(表单本身不会水平滚动,只是表格部分)。横向滚动部分可在计算机上的Safari / Chrome / Firefox,iOS上的Safari和我们的Cordova / Ionic应用程序的Android版本中使用,但它不会在iOS应用程序中水平滚动。
我尝试了基于这些SO问题和文档(q1,q2,q3,q4)的各种修补程序,我从<div/>
更改了它到<ion-content/>
并添加overflow-scroll="true" direction="xy" delegate-handle="tableGroup"
属性并在加载JQuery应用程序后调用$ionicScrollDelegate.$getByHandle('tableGroup').resize()
但没有任何效果。我也尝试使用基于this question的TinyScrollbar,但这并没有正确加载。所以我尝试过很多方向,但没有到达任何地方。有什么建议吗?
答案 0 :(得分:0)
我实际上是靠自己想出来的。我在Ionic页面上的容器中添加了几个简单的滚动元素,<ion-scroll/>
起作用。然后我尝试将它放在带有委托句柄sectionScroll
的JQuery应用程序中,并在加载JQuery应用程序后调用$ionicScrollDelegate.$getByHandle('sectionScroll').resize();
,但得到一个控制台警告,说它找不到任何名为sectionScroll
的内容我应该把它放在$timeout()
中。我试过了,但它仍然没有用。然后我意识到,因为<ion-scroll/>
是一个角度指令,它是作为使用JQuery插入Ionic应用程序的长模板字符串的一部分创建的,所以它需要由Angular编译才能被识别如下:
let toCompile = angular.element('#formContent');
let linkFn = $compile(toCompile);
linkFn($scope);
$ionicScrollDelegate.$getByHandle('sectionScroll').resize();