AngularJS 和复选框
AngularJS and checkboxes
我正在学习 AngularJS 并尝试一下。
我现在对复选框有了一点理解。这是我的 JavaScript 代码:
angular.module('app',[]).controller('MainCtrl',function($scope,$http)
{
$scope.photo = 1;
$scope.art = 0;
$scope.change = function()
{
$scope.photo = 0;
$scope.art = 1;
}
});
和HTML:
<div ng-controller="MainCtrl">
<div class="checkbox">
<label><input type="checkbox" ng-checked="photo">PhotoGallery</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-checked="art">Art</label>
</div>
<button ng-click="change()">change</button>
</div>
我创建了一个小 jsfiddle 来展示我的问题:
当您 运行 使用此代码时,您会看到照片库已预先选中。现在,当我单击更改按钮时,它会更改选择。但是当我然后删除 "art" 选择并再次单击更改按钮时,没有任何反应。
这是正确的还是我的理解完全错误?
ng-checked will update your IHM on load but clicking on a checkbox will not update your $scope.variables
since you do not define them as a model. Just add ng-model 获得双向数据绑定,它应该可以工作。
<div class="checkbox">
<label>
<input type="checkbox" ng-checked="photo" ng-model="photo">PhotoGallery</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" ng-model="art" ng-checked="art">Art</label>
</div>
这是一个工作示例:updated jsfiddle
问题是您在函数更改中仅以一种方式更改值。
我觉得你可以这样做:
$scope.photo = 1;
$scope.art = 0;
$scope.change = function() {
tmp = $scope.photo;
$scope.photo = $scope.art;
$scope.art = tmp;
}
我正在学习 AngularJS 并尝试一下。
我现在对复选框有了一点理解。这是我的 JavaScript 代码:
angular.module('app',[]).controller('MainCtrl',function($scope,$http)
{
$scope.photo = 1;
$scope.art = 0;
$scope.change = function()
{
$scope.photo = 0;
$scope.art = 1;
}
});
和HTML:
<div ng-controller="MainCtrl">
<div class="checkbox">
<label><input type="checkbox" ng-checked="photo">PhotoGallery</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-checked="art">Art</label>
</div>
<button ng-click="change()">change</button>
</div>
我创建了一个小 jsfiddle 来展示我的问题:
当您 运行 使用此代码时,您会看到照片库已预先选中。现在,当我单击更改按钮时,它会更改选择。但是当我然后删除 "art" 选择并再次单击更改按钮时,没有任何反应。
这是正确的还是我的理解完全错误?
ng-checked will update your IHM on load but clicking on a checkbox will not update your $scope.variables
since you do not define them as a model. Just add ng-model 获得双向数据绑定,它应该可以工作。
<div class="checkbox">
<label>
<input type="checkbox" ng-checked="photo" ng-model="photo">PhotoGallery</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" ng-model="art" ng-checked="art">Art</label>
</div>
这是一个工作示例:updated jsfiddle
问题是您在函数更改中仅以一种方式更改值。
我觉得你可以这样做:
$scope.photo = 1;
$scope.art = 0;
$scope.change = function() {
tmp = $scope.photo;
$scope.photo = $scope.art;
$scope.art = tmp;
}