动态包含角度指令
Dynamically include directive in angular
我有一种情况,我想动态地将指令/组件包含在角度模板中。我想要这个的原因是我正在编写一个仪表板,它应该很容易用新的小部件进行扩展。我真的很喜欢角度中的指令/组件思维,并且希望能够为每个小部件制定指令。然后我想添加每个带有 ng 重复或类似内容的小部件。这将使随着时间的推移添加新小部件变得非常容易。我的问题是,首先是这种想法是否合理,其次,如果有人知道是否有人写过这样的东西,我可以开始。
例
vm.widgets = [{
component: 'widgetA'
},{
component: 'widgetB'
}]
<div ng-repeat="widget in dashboard.widgets">
<ng-include-component name="widget.component">
</div>
这样的事情对我有用:
您的观点:
<div ng-repeat="row in components">
<div class="row">
<div ng-repeat="col in row">
<div class="col-md-{{col.width}}" ng-include="col.url"/>
</div>
</div>
</div>
您的控制器:
$scope.components = {
'Row1': [
[{
url: '/views/widget1.html',
width: '4'
}, {
url: '/views/widget2.html',
width: '8'
}]
],
'Row2': [
[{
url: '/views/widget3.html',
width: '4'
}, {
url: '/views/widget4.html',
width: '4'
}, {
url: 'views/widget5.html',
width: '4'
}]
]
};
我创建了自己的指令,完成了我在用例 https://gist.github.com/Abrissirba/157e4c3bb87e724b35e1 中要求的内容。
如果按需创建元素,请使用ng-
<div ng-if="flag">
<div ng-repeat="widget in dashboard.widgets">
<custom-directive name="{{widget.component}}">
</div>
</div>
控制器
app.directive('customDirective',fucntion(){
return {
restrict: 'A',
scope:false,
link: function (scope, elem, attr, ctrl) {
scope.widgets = [{
component: 'widgetA'
},{
component: 'widgetB'
}];
}
});
相关文章:
- 包含ng模板的指令中的角度transclude(通用Confirm Modal)
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- AngularJS指令未包含在父元素中
- 如何使用自定义角度指令包含子元素
- AngularJS在指令中包含HTML属性
- mocking和测试指令,隔离范围包含ng模型
- 在 Angular 指令中获取原始包含的内容
- AngularJS - 在所有指令呈现后包含<脚本>
- 角滤波器包含
- AngularJS - 包含嵌套属性指令的内容
- 如何将服务注入链接函数包含指令
- AngularJS 指令:使用包含/编译链接集合中的对象
- 正确包含 Angular 指令的模板
- 如何在茉莉+角形中测试指令的隔离镜的双向绑定
- AngularJS指令包含文件内容
- 如何定义角度指令,该指令包含一个方法,并且可以通过“ng click”调用
- 如何让angular指令包含&替换另一个指令
- 如何在angular js中把自定义指令包含到另一个自定义指令的模板(html)中
- 我的指令在角不工作
- 动态地将一个指令包含在另一个指令中