我有如下的HTML代码:
<input ng-controller="cboxCtrl" type="checkbox"
ng-model="hideCompleted" ng-change="hideChanged()"/>
还需要一个类似这样的控制器:
angular.module('simple-todos').controller('cboxCtrl', ['$scope',
function ($scope) {
console.log("starting");
$scope.hideChanged = function () {
console.log("in hideChanged() ");
};
}]); // end controller
当我点击复选框时,它可以很好地工作并在控制台上显示消息。然而,如果我在复选框周围添加一个标签:
<label>
<input ng-controller="cboxCtrl" type="checkbox"
ng-model="hideCompleted" ng-change="hideChanged()"/>
Some text to explain the checkbox
</label>
当我点击复选框时,ng-change函数不会运行。我认为这与作用域有关,但我无法确定具体原因。如果我将标签替换为div(这样做当然不会得到“漂亮”的布局),ng-change函数就会按预期执行。
ng-controller="cboxCtrl" type="checkbox" ng-model="hideCompleted" ng-change="hideChanged()"
移到标签元素上怎么样? - Deepsy