【发布时间】:2016-10-18 16:45:35
【问题描述】:
我正在尝试使用角度材料在单选按钮组内嵌套一个复选框。我有复选框显示;但是,我无法单击复选框。看到这个code pen
标记
<md-radio-group ng-model="vm.TargetType">
<md-radio-button class="" ng-repeat="targetGroup in vm.Targets" ng-value="targetGroup.Id">{{targetGroup.Name}}<br />
<div ng-if="targetGroup.Id == 1">
<div ng-repeat="p in vm.Phases">
<md-checkbox ng-checked="vm.exists(p,vm.SelectedPhases)" ng-click="vm.toggle(p,vm.SelectedPhases)">{{p.Name}}</md-checkbox>
</div>
</div>
</md-radio-button>
</md-radio-group>
JS
(function() {
'use strict';
angular.module("myApp", ['ngMaterial']).controller("myController",
function ($scope) {
var vm=this;
vm.SelectedPhases=[];
console.log('in my controller')
vm.Targets = [{
Id: 1,
Name: 'Can\'t select child elements'
}, {
Id: 2,
Name: 'Another Group'
}];
vm.Phases = [{
Id: 1,
Name: 'Something A'
}, {
Id: 2,
Name: 'Something B'
}];
vm.toggle = function (item, list) {
var idx = list.indexOf(item);
if(idx > -1)
{
list.splice(idx, 1);
}
else
{
list.push(item);
}
};
vm.exists = function (item, list) {
return list.indexOf(item) > -1;
};
});
})();
编辑 看起来单选按钮内的内容包含在具有 md-label 类的元素中。我猜它阻止了点击事件的传播?
【问题讨论】:
标签: angularjs angular-material