无法在Ionic 1.3.0 iOS App中水平滚动

时间:2017-06-28 20:12:52

标签: ios cordova ionic-framework horizontal-scrolling

我的Cordova / Ionic(v1.3.0)应用程序主要包含一个为复杂表单构建HTML的JQuery App。相同的JQuery App用于构建Web浏览器的复杂表单,只有少数地方可以插入特定于移动设备的代码。

我现在试图在垂直滚动的表单中有一个水平滚动的表格部分(表单本身不会水平滚动,只是表格部分)。横向滚动部分可在计算机上的Safari / Chrome / Firefox,iOS上的Safari和我们的Cordova / Ionic应用程序的Android版本中使用,但它不会在iOS应用程序中水平滚动。

我尝试了基于这些SO问题和文档(q1q2q3q4)的各种修补程序,我从<div/>更改了它到<ion-content/>并添加overflow-scroll="true" direction="xy" delegate-handle="tableGroup"属性并在加载JQuery应用程序后调用$ionicScrollDelegate.$getByHandle('tableGroup').resize()但没有任何效果。我也尝试使用基于this question的TinyScrollbar,但这并没有正确加载。所以我尝试过很多方向,但没有到达任何地方。有什么建议吗?

1 个答案:

答案 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();