【发布时间】:2017-01-27 05:44:07
【问题描述】:
在 AngularJS 1.5 中,我想将一个组件的绑定传递到(多槽)转置范围中 - 用于模板中的引用(在一个特定的或所有的模板中 - 没有任何一种方式是好的)。
这是为了创建一个通用的自定义选择列表
// Component
.component('mySelect', {
bind: {
collection: '<'
},
transclude:{
header: 'mySelectHeader',
item: 'mySelectItem'
},
templateUrl: 'my-select-template',
controller: function(){
.....
}
});
...
// Component template
<script id="my-select-template" type="text/ng-template">
<ol>
<li ng-transclude="header"> </li>
<li ng-transclude="item"
ng-click="$ctrl.select($item)"
ng-repeat"$item in $ctrl.collection">
</li>
</ol>
</script>
...
// Example usage
<my-select collection="[{id: 1, name: "John"}, {id: 2, name: "Erik"}, ... ]>
<my-select-head></my-select-head>
<!-- Reference to $item from ng-repeate="" in component -->
<my-select-item>{{$item.id}}: {{$item.name}}</my-select-item>
</my-select>
这可能来自.component()吗?带有transclusion 的自定义指令?
【问题讨论】:
-
嵌入本质上与您想要实现的目标相反。
标签: angularjs angularjs-directive angularjs-scope web-component transclusion