Angularjs 使用指令(组件)创建按钮组

Angularjs 使用指令(组件)创建按钮组,angularjs,twitter-bootstrap,web-component,Angularjs,Twitter Bootstrap,Web Component,所以每件事都应该是一件好事 假设我定义了一些用于编辑/删除/查看域对象的按钮组件。例如: angular.module('xxx').component('editButton', { bindings: {domainObject: '<'}, template: '<button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>' controller:

所以每件事都应该是一件好事

假设我定义了一些用于编辑/删除/查看域对象的按钮组件。例如:

angular.module('xxx').component('editButton', {
  bindings: {domainObject: '<'},
  template: '<button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>'
  controller: /* ... */
});
angular.module('xxx')。组件('editButton'{

绑定:{domainObject:'组件并不总是一个html元素。它可以是(通常是一组html元素)

组件模板应包括周围的div btn组

template: '<div class="btn-group"><button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>'...etc.
而不是

.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
}

我希望避免将所有按钮都放在一个组件中,因为这违反了SRP(组件对我来说的主要好处)。从引导复制CSS代码也远不是完美的解决方案(我想复制和粘贴的内容比您建议的要多)。尽管如此,您的想法还是解决了问题,谢谢。在基于组件的应用程序中,您肯定会有包含许多元素和其他子组件的组件。(请参阅文档中的英雄列表示例)我认为您将SRP理论推向了一个极端。在这里,组件将负责控制对象的状态。当然,组件可以创建层次结构。但是
my button group
组件的唯一责任应该是对其他组件进行分组,如
edit button
delete-按钮
。如果
我的按钮组
组件必须考虑对象编辑和删除细节,那么它的代码会随着每个新按钮的添加而增长。这肯定是一个设计糟糕的组件。如果你谈论抽象的理想组件,它应该有自己的css。如果你谈论现实世界,你仍然需要directiangular 1.5中的ves和angular 2中的ves,您也可以将组件与html属性相匹配,而不仅仅是元素
在Angular 2中?这确实可以解决问题!你能把它作为一个答案吗?我刚刚发现。他们会在Angular 2中解决问题。至于1.5,解决方案是使用
替换
,尽管它不受欢迎,或者是带有
限制:“a”的指令。太简单了!
template: '<div class="btn-group"><button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>'...etc.
.your-page .btn-group .btn:first-child:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
}