order by and click在ng repeat angular js中不起作用
order by and click is not working in ng-repeat angular js
ng重复显示数据库中的数据,但我的谓词顺序、反向功能和点击不起作用
<div ng-repeat="shipment in sortedShipments">
<div ng-click="show_shipment($index,shipment.shipment_id)" ng-class="{selected_trip: $index === currentShipment}">
<div>{{shipment.from_location}</div>
</div>
</div>
这是从数据库HTTP请求和排序代码中获取记录
$http.get(url+'/get-shipments').success(function(data){
$scope.shipments = data;
$scope.sortedShipments = $filter('orderBy')($scope.shipments, 'predicate', true);
$scope.currentShipment = 0;
$scope.sortType = 'shipment_id';
$scope.predicate = 'created_at';
$scope.reverse = false;
});
对于点击功能,我有两个按钮可以使用选定的索引和上一个按钮移动到下一个发货div
<a class="" ng-click="next($event)" href="#">next</a>
<a class="" ng-click="previous($event)" href="#">previous</a>
角js码是
$scope.next = function($event) {
if ($scope.currentShipment < $scope.sortedShipments.length - 1) {
$scope.currentShipment++;
$('.selected_trip').click();
}
};
$scope.previous = function($event) {
if ($scope.currentShipment > 0) {
$scope.currentShipment--;
$('.selected_trip').click();
}
};
问题是它进入下一个项目,在上面添加selected_trip类,但我也想触发对所选类的点击,这样它就可以在所选行ng-click="show_shipment($index,shipment.shipment_id)"
上调用这个函数但目前$('.selected_trip').click();
这给了我错误我也在上试过这个
document.querySelector('.selected_trip').click();
这是展示发货方式
$scope.show_shipment = function(index,id) {
$scope.setSelected(index);
$http.get(url+'/get-shipments/'+id).success(function(data){
$scope.to_location = data[0]['to_location'];
})
})
这是我的订单代码,当我开始在js 中使用$filter选项时,它不起作用
$scope.order = function(predicate) {
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
$scope.predicate = predicate;
};
您应该使用angular.element
和trigger
方法:
所以这个:$('.selected_trip').click();
成为:angular.element('.selected_trip').trigger('click');
它应该起作用。
编辑:
您还应该使用$timeout
作为解决方法,因为您还处于$digest
中,并且不能再次调用$apply
,这就是您出现这些错误的原因。
我制作了一个JSFiddle来向您解释$timeout
:的使用
app.controller('dummy', function ($scope, $timeout) {
$scope.test = function () {
$timeout(function() {
angular.element('.selected_trip').trigger('click');
}, 0, false);
}
$scope.show_shipment = function () {
$scope.clicked = "hello world";
};
});
更多信息请点击此处:https://docs.angularjs.org/error/$rootScope/inprog?p0=$应用
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- angular.js没有'无法在PhoneGap中处理视图标记
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将Angular js与taglib结合使用
- Angular JS Filter-通过3个复选框进行筛选
- vaadin:使用自定义布局集成angular js
- angular js密码强度显示问题
- 使用angular.js问题的JavaSpringREST服务
- 将复杂对象从angular js传递到web api,它总是返回404
- entre上的angular js阻止提交
- 根据Angular.JS上一次的内容禁用选择
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 使用Angular js-量角器e2e测试上传文件
- Angular.js延迟控制器初始化
- 如何在angular.js中动态应用自定义过滤器
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记