在页面加载时,我有一个调用服务的控制器,然后将返回的数据绑定到某些$ scope.objects:
app.controller("MainController", function($scope, $http, serviceGetData) {
serviceGetData.getData(function(data) {
$scope.LoginCount = data.LoginCount;
$scope.ProductInfo = data.ProductInfo;
$scope.ProfileInfo = data.ProfileInfo;
// Delayed binding
$scope.OrderHistory = { History: [] };
}
$scope.populateModel = function(model, values) {
var isArray = $.isArray(values);
$.each(values, function(key, value) {
if (isArray) {
key = this.key;
value = this.value;
}
if (model[key] !== value) {
model[key] = value;
}
});
};
}
在我的HTML中,我尝试将$ scope.OrderHistory绑定为:
<h1><a href="#" ng-click="populateModel(OrderHistory , { History: OrderEntries })" >View order details</a></h1>
在笔记本电脑/台式机上观看时这很好,但在平板电脑和移动设备上无法工作,例如iphone / ipad的
答案 0 :(得分:10)
尝试add the ngTouch。来自文档:
用于触摸屏设备的默认
ngClick
的更强大替代品。在发送点击事件之前,大多数移动浏览器在点击和释放后等待大约300毫秒。此版本立即处理它们,然后阻止以下单击事件传播。需要安装
ngTouch
模块。
答案 1 :(得分:2)
我遇到了同样的问题。
我尝试添加''
库和依赖项,但仍然遇到问题。
包含ngTouch
的静态 <div>
元素正常工作,但动态创建的div(在ng-click
上相同的网页)包含ng-repeat
没有工作。点击它们只是没有做任何事情。
当我要求在任何设备类型上查看我的网页时,这发生在我的iPhone 6,iPad和Google Chrome上。当我在IE或常规Chrome中查看同一网页时,所有ng-click
都运行正常。
解决方案是使用ng-click
指令described here并将ngMobileClick
更改为ng-click
。
执行此操作后,当我在设备上轻触时,我动态创建的点击事件 会正常触发。
很奇怪。
答案 2 :(得分:0)
存在类似的问题,即ng-repeat内部的ng-click不会触发。 我通过添加$event.stopPropagation()
来解决此问题例如:
<li ng-repeat="option in $scope.options">
<span><a ng-click="trigger(); $event.stopPropagation()"></a></span>
</li>