如何使用angularjs简单地添加和删除选中的属性到复选框。 我从this问题中找到了解决方案,但它需要Jquery
有没有其他方法可以在不使用Jquery的情况下执行此操作?
以下是我的尝试
<input type="checkbox" id="test" class="switch__input" checked="{{checkVal}}">
<input type="button" ng-click="test()" value="test">
JS
module.controller('settingsCtrl',function($scope){
//for adding
$scope.checkVal="checked";
//for removing checkbox
$scope.test=function(){
$scope.CheckVal="";
}
}
但删除不会起作用
答案 0 :(得分:6)
这是Angularjs推荐的检查方式和取消选中复选框
HTML :
<input type="checkbox" ng-model="checkVal" ng-true-value="true" ng-false-value="false">
也有效
<input type="checkbox" ng-checked="checkVal">
JS :
module.controller('settingsCtrl',function($scope){
//for adding
$scope.checkVal=true;
//for removing checkbox
$scope.test=function(){
$scope.checkVal=false;
}
}
答案 1 :(得分:1)
您不需要特殊指令,ngChecked可以正常使用:
var app = angular.module('demo', []).controller('MainController', function($scope) {
$scope.checkVal = true;
$scope.test = function() {
$scope.checkVal = !$scope.checkVal; // or false
};
});
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>
<div ng-app="demo" ng-controller="MainController">
<input type="checkbox" id="test" class="switch__input" ng-checked="checkVal">
<input type="button" ng-click="test()" value="test">
</div>
答案 2 :(得分:1)
请查看工作示例:DEMO
HTML
<input type="checkbox" id="test" class="switch__input" ng-checked="checkVal">
<input type="button" ng-click="test()" value="test">
控制器:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.checkVal = true;
//for adding/removing checkbox
$scope.test = function() {
$scope.checkVal = !$scope.checkVal;
}
});
答案 3 :(得分:0)
我可以跨越一个指令添加动态属性可能这可以帮到你
myApp.directive('dynAttr', function() {
return {
scope: { list: '=dynAttr' },
link: function(scope, elem, attrs){
for(attr in scope.list){
elem.attr(scope.list[attr].attr, scope.list[attr].value);
}
//console.log(scope.list);
}
};
});
在控制器中
$scope.attArray = [
{ attr: 'myattribute', value: '' }
];
将其用作
<input dyn-attrs="attArray"></input>