当前位置:  开发笔记 > IOS > 正文

使用IOS 8.3在Safari上进行Angular ng-click问题

如何解决《使用IOS8.3在Safari上进行Angularng-click问题》经验,为你挑选了2个好方法。

这是一个奇怪的问题,这是一些难以产生和探索的问题.

在使用Angular构建Web应用程序时,我的老板发现应用程序中使用ng-click指令的所有按钮都不起作用.

现在,这个问题只发生在iphone 6 with IOS 8.3 and using the safari browser.

我可以说,当在iPhone5(所有版本),iPhone 6(IOS 9),Safari for Windows和所有其他浏览器(移动和桌面)上进行测试时,ng-click就像一个魅力.

该应用程序正在使用Angular 1.4.3.

这是按钮的代码,正如您所看到的,没有什么特别之处:


在控制器中:

$scope.onCalculate = function () {
     //Do something... And then:
     $state.go('someplace');
};



我想在这里提出了许多变化,包括ng-touch,ng-bind,建设自己的点击指令,如下所示:

.directive('basicClick', function($parse, $rootScope) {
    return {
        compile: function(elem, attr) {
            var fn = $parse(attr.basicClick);
            return function(scope, elem) {
                elem.on('click', function(e) {
                    fn(scope, {$event: e});
                    scope.$apply();
                });
            };
        }
    };
});

找不到适合该问题的解决方案.

谢谢.



1> Iamisti..:

IOS 8.4.1更新有一个已知的问题,它阻止ng-link和ng-click工作.

使用"touchstart click"可以解决此问题.

app.directive("ngMobileClick", [function () {
    return function (scope, elem, attrs) {
        elem.bind("touchstart click", function (e) {
            e.preventDefault();
            e.stopPropagation();

            scope.$apply(attrs["ngMobileClick"]);
        });
    }
}])

HTML调用: ng-mobile-click="onCalculate()"



2> Gal Silberma..:

我把它修好了.

问题//Do something... And then:出在功能部分.在此过程中的某个时刻,该功能会将一些数据保存到浏览器本地存储中.

我的老板在safari上使用隐私浏览,显然当在safari上使用隐私浏览时,浏览器不会保存本地存储上的数据并且它会抛出异常并杀死代码.

好吧,谢谢你.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有