0
我试图通过创建一个指令,取代重构我的瓷砖:如何在指令中封装材质设计md-grid-tile元素?
<md-grid-list md-cols="2" md-row-height="1:1" md-gutter="12px">
<md-grid-tile ng-repeat="card in cards" class="card-tile" md-rowspan="1" md-colspan="1">
<md-grid-tile-footer>
<h3>{{CCtrl.card.title}}</h3>
<h4 class="md-caption">Last updated {{CCtrl.card.lastUpdated | ago}}</h4>
</md-grid-tile-footer>
</md-grid-tile>
</md-grid-list>
使用自定义指令:
<md-grid-list md-cols="2" md-row-height="1:1" md-gutter="12px">
<card ng-repeat="card in cards" card="card"></card>
</md-grid-list>
与下面的定义:
.directive('card', function(CONFIG) {
return {
restrict: 'AE',
scope: {
card: '='
},
replace: true,
templateUrl: './ng/Card/card.tpl.html',
controller: 'CardCtrl',
controllerAs: 'CCtrl',
bindToController: true
}
})
和模板(card.tpl.html):
<md-grid-tile class="card-tile" md-rowspan="1" md-colspan="1">
<md-grid-tile-footer>
<h3>{{CCtrl.card.title}}</h3>
<h4 class="md-caption">Last updated {{CCtrl.card.lastUpdated | ago}}</h4>
</md-grid-tile-footer>
</md-grid-tile>
我必须使用“replace:true”才能使Material Design样式/布局正常工作。 我收到以下错误:
Error: $compile:multidir
Multiple Directive Resource Contention
Multiple directives [card (module: project), mdGridTile (module:
material.components.gridList)] asking for new/isolated scope on: <md-
grid-tile class="card-tile" md-rowspan="1" md-colspan="1" ng-
repeat="card in cards.sketchCards" card="card">
有没有办法来封装MD-网平铺在一个自定义的指令?
谢谢克里斯。删除范围并且不得不主动观察变量使得处理数据变得更加困难。不知道我想要这样做。重构的原因是使代码更简单。我想知道我是否缺少明显的东西。 – Miki