问题
Given the following:
<html ng-app>
...
<script>
function Main($scope){
$scope.checked = function() {
alert("This will never show!");
};
}
</script>
<body>
<div data-role="page" ng-controller="Main">
<div data-role="header">
<h1>Sample</h1>
</div>
<div data-role="content">
<label for="mybox">Click here!</label>
<input id="mybox" type="checkbox" ng-model="boxval" ng-change="checked()">
</div>
</div>
</body>
</html>
Checking or unchecking the box does not trigger the method call. By removing the <label> tag it will work fine.
I know JQuery Mobile is doing some fancy manipulation of the underlying <input type="checkbox"> tag, but is there a simple way to trick it to activate the ng-change?
回答1:
So it turns out all I needed to do to get this to work was change the order of my javascript imports to import jQuery before Angular. Suddenly it is all magically working.
回答2:
The ngModel directive is required in order for ngChange to work.
(http://docs.angularjs.org/api/ng.directive:input)
来源:https://stackoverflow.com/questions/15961160/jquery-mobile-angular-checkboxes-are-ignored-by-angular