NG-Click在Chrome中无法工作,但在FireFox中可以工作。
NG-Click在Chrome中无法工作,但在FireFox中可以工作。
我有一个NG-Click,用于改变页面上元素的数量(这些元素来自API调用)。NG-Click使用一个下拉框,在FireFox中可以正常工作。但最近我发现,在一个同事开始处理这个服务时,它在Chrome中无法工作。我不知道为什么它无法工作,希望能得到帮助。我在JSFiddle中附上了代码。\n[code]app.controller(\"AppCtrl\", function($http, $scope){\nvar app = this; \n$scope.toLoad=50;\n$scope.page= 0;\n$scope.sortArray = [];\n$scope.filterList = \"\";\nfunction getData(page){\n $http.get(\'/file/filter/\' + $scope.toLoad + \'/\' + $scope.page + \'?\' + $scope.filterList ).success(function(data){\n app.info = data;\n console.log(data);\n });\n}\n$scope.changeLoad = function(toLoad){\n $scope.toLoad = toLoad;\n getData($scope.page)\n}\n}\n[/code]\nHTML:\n[code]
\n \n{{information.uuid}} | {{information.publisher}} | {{information.ts}} |
\n[/code]
问题的原因是在Chrome浏览器中,ng-click事件不起作用,但在FireFox浏览器中可以正常工作。解决方法是使用ng-change事件来替代ng-click事件。
具体来说,问题的解决方法是将
以下是修改后的代码:
<body ng-app="app" ng-controller="AppCtrl" id="body"> <div id="main-table"> <div class="widget-body no-padding"> <div id="select-more"> <select class="form-control" name="dt_basic_length" aria-controls="dt_basic" id="box-test" style="width:6%" ng-change="update()" ng-model="selectedItem"> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> <option value="1000">1000</option> </select> </div> <table> <tbody> <tr ng-repeat="information in app.info | filter:searchText"> <td>{{information.uuid}}</td> <td>{{information.publisher}}</td> <td>{{information.ts}}</td> </tr> </tbody> </table> </div> </div> </body>
var app = angular.module('app', []); app.controller("AppCtrl", function ($http, $scope) { var app = this; $scope.toLoad = 50; $scope.page = 0; $scope.sortArray = []; $scope.filterList = ""; $scope.selectedItem = {}; function getData(page) { $http.get('/file/filter/' + $scope.toLoad + '/' + $scope.page + '?' + $scope.filterList).success(function (data) { app.info = data; console.log(data); }); } $scope.changeLoad = function (toLoad) { $scope.toLoad = toLoad; getData($scope.page); }; $scope.update = function () { alert($scope.selectedItem); }; });