好的,我有一个我正在使用的自定义模板,其中我有几个包含列表的手风琴,用户可以单击该选项并激活它。但是,我无法访问控制器中的父作用域以更改从先前单击的项目中删除活动类。
基本上我想要的是当用户点击列表项时,它变为活动状态而其他项变为非活动状态。
以下是plunker:http://plnkr.co/edit/d5kHjH?p=preview
以下是相关代码:
.run(function(formlyConfig) {
formlyConfig.setType({
name: 'label',
template: `<div ng-init= "active = false">
<a li class="list-group-item small" ng-click="addActive(); active = !active" ng-class="{'active': active === true}"><span class="glyphicon glyphicon-chevron-right"></span> {{to.label}}</li></a>
</div>`,
controller: function($scope) {
$scope.addActive = function() {
$(this).parent().children().removeClass("active");
$(this).addClass("active");
$scope.model.PROC = $scope.to.label;
console.log($scope.model.PROC);
};
}
});
})
我希望能够将非活动类添加到之前创建的项目中,这些项目是从HTML中的ng-repeat调用的:
<uib-accordion close-others="true">
<ul class="list-group">
<div uib-accordion-group="" class="panel-primary" ng-repeat="accordion in vm.accordions" active="accordion.active" is-open="isopen">
<uib-accordion-heading ng-click="isopen=!isopen">
<span class="label label-info pull-left">{{accordion.label}}</span>
{{accordion.title}}
</uib-accordion-heading>
<formly-form model="accordion.form.model" fields="accordion.form.fields" form="vm.form" options="accordion.form.options"></formly-form>
</div>
</ul>
</uib-accordion>
表格形式的行是模板项目被添加的地方