如何使用 ng-click / ng-change 将单选按钮标记为已在 Angular 中选中?
How to mark a radio button as checked in Angular with ng-click / ng-change?
http://plnkr.co/edit/rXWUUjLtJi79z2hF1uVX?p=preview
我有一个非常简单的 plnkr,基本上当 li
元素被点击时我想要检查单选按钮。
下面是如何实现的?现在没有选择任何收音机。
如果我删除 ng-click,那么用户只需单击单选按钮,但如果用户单击 li
内部的 text/label,我还希望选中单选按钮这就是为什么我试图让 li
上的 ng-click
以这种方式工作。
angular.module('app', [])
.controller('mainController', ['$scope', '$rootScope',
function($scope,$rootScope) {
$scope.toggleTags = function(type) {
console.log(type);
switch(type) {
case 'watchlist':
$scope.watchlist = true;
$scope.private = false;
break;
case 'private':
$scope.watchlist = false;
$scope.private = true;
break;
}
};
}]);
body { font-family: Arial, sans-serif; }
li {
margin: 10px;
list-style: none;
width: 100%;
clear: both;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app" ng-controller="mainController">
<ul>
<li ng-click="toggleTags('watchlist')">
<input type="radio"
name="personalGroup"
ng-model="watchlist"
ng-change="toggleTags('watchlist')"
value="watchlist">
My Watchlist
</li>
<li ng-click="toggleTags('private')">
<input type="radio"
name="personalGroup"
ng-model="private"
ng-change="toggleTags('private')"
value="private">
My Private Tags
</li>
</ul>
</body>
对于这个示例,我不会使用 ng-click
来执行此操作。相反,我会使用 HTML DOM 对象 <label for="radio_button_id_here">
.
HTML
<li>
<input type="radio" name="personalGroup" ng-model="watchlist" value="watchlist" id="watchlist">
<label for="watchlist">My Watchlist</label>
</li>
<li>
<input type="radio" name="personalGroup" ng-model="private" value="private" id="private">
<label for="private">My Private Tags</label>
</li>
http://plnkr.co/edit/rXWUUjLtJi79z2hF1uVX?p=preview
我有一个非常简单的 plnkr,基本上当 li
元素被点击时我想要检查单选按钮。
下面是如何实现的?现在没有选择任何收音机。
如果我删除 ng-click,那么用户只需单击单选按钮,但如果用户单击 li
内部的 text/label,我还希望选中单选按钮这就是为什么我试图让 li
上的 ng-click
以这种方式工作。
angular.module('app', [])
.controller('mainController', ['$scope', '$rootScope',
function($scope,$rootScope) {
$scope.toggleTags = function(type) {
console.log(type);
switch(type) {
case 'watchlist':
$scope.watchlist = true;
$scope.private = false;
break;
case 'private':
$scope.watchlist = false;
$scope.private = true;
break;
}
};
}]);
body { font-family: Arial, sans-serif; }
li {
margin: 10px;
list-style: none;
width: 100%;
clear: both;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app" ng-controller="mainController">
<ul>
<li ng-click="toggleTags('watchlist')">
<input type="radio"
name="personalGroup"
ng-model="watchlist"
ng-change="toggleTags('watchlist')"
value="watchlist">
My Watchlist
</li>
<li ng-click="toggleTags('private')">
<input type="radio"
name="personalGroup"
ng-model="private"
ng-change="toggleTags('private')"
value="private">
My Private Tags
</li>
</ul>
</body>
对于这个示例,我不会使用 ng-click
来执行此操作。相反,我会使用 HTML DOM 对象 <label for="radio_button_id_here">
.
HTML
<li>
<input type="radio" name="personalGroup" ng-model="watchlist" value="watchlist" id="watchlist">
<label for="watchlist">My Watchlist</label>
</li>
<li>
<input type="radio" name="personalGroup" ng-model="private" value="private" id="private">
<label for="private">My Private Tags</label>
</li>