olduğunu simpleGridTable denilen basit tablo bileşeni:
<tr class="simpleGridRecord" [table]="userSimpleGridTable" simpleGridRecord *ngFor="#item of m_businesses | OrderBy:sort.field:sort.desc; #index=index" [item]="item" [index]="index">
: bunun içinde
<simpleGridTable #userSimpleGridTable>
<thead>
<tr>
<th sortableHeader="name" [sort]="sort">name</th>
<th sortableHeader="businessId" [sort]="sort">business</th>
<th>access keys [0-7]</th>
<th>privileges (id)</th>
<th>privileges (name)</th>
</tr>
</thead>
<tbody>
<tr class="simpleGridRecord" [table]="userSimpleGridTable" simpleGridRecord *ngFor="#item of m_businesses | OrderBy:sort.field:sort.desc; #index=index" [item]="item" [index]="index">
<td style="width: 20%" simpleGridData (labelEdited)="onLabelEdited($event,'name')" editable="true" field="name" [item]="item"></td>
<td style="width: 8%" simpleGridData field="businessId" [item]="item"></td>
<td style="width: 20%" simpleGridDataChecks (changed)="setAccessMask($event)" [item]="item" [checkboxes]="getAccessMask(item)"></td>
<td style="width: 12%" simpleGridData field="privilegeId" [item]="item"></td>
<td style="width: 40%" simpleGridDataDropdown [testSelection]="selectedPriveleges()" (changed)="setPriveleges($event)" field="name" [item]="item" [dropdown]="m_priveleges"></td>
<!-- <td simpleGridDataImage color="dodgerblue" [field]="item.getKey('studioLite') == '0' ? 'fa-circle' : 'fa-circle-o'" [item]="item"></td> -->
</tr>
</tbody>
sana yukarıda onun direktifi görebileceğiniz bir simpleGridRecord var
simpleGridRecord bileşeni aşağıdaki şekilde (ve üst SimpleGridTable enjekte bağımlılık için çalışılan:
import {Component, Injectable, Input, Output, ChangeDetectionStrategy, HostListener, HostBinding, EventEmitter} from 'angular2/core'
içe {SimpleGridTable} "./SimpleGridTable" den;
@Component({
selector: 'tr[simpleGridRecord]',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
<ng-content></ng-content>
`
})
export class SimpleGridRecord {
constructor(tb:SimpleGridTable){
console.log(tb);
}
....
ve benim SimpleGridTable bileşen:
@Component({
selector: 'simpleGridTable',
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [SimpleGridTable],
pipes: [OrderBy],
directives: [COMMON_DIRECTIVES, SimpleGridSortableHeader, SimpleGridRecord, SimpleGridData],
styleUrls: [`../comps/simplegrid/SimpleGrid.css`],
template: `
<table class="table simpleTable">
<ng-content></ng-content>
</table>
`....
})
export class SimpleGridTable {
...
ve ben bir hata alıyorum henüz simpleGridRecord üst tablosunu enjekte edebilmek için görünmüyor:
I TypeInfo kullanıyorum olarak @Inject kullanmayın ... Tabloyu kendi verdikleri yere [sağla] yapıyorum
tüm sınıfburada görülebilir: https://github.com/born2net/studioDashboard/tree/master/src/comps/simplegrid
tx
Sean bir çocuk içine bir üst enjekte ediyorlar her
sağlayıcıları: [SimpleGridTable] SimpleGridTable bileşeninde? Sanırım bunu yanlış anladın. – echonax
Zaten tabloyu [[table] 'öznitelik bağlaması ile enjekte ediyorsunuz. Bunu neden DI kullanarak yapmak istersiniz? Enjektör hangi ana tablo örneğinin kullanılacağını nasıl bilir? – Brad
tablonun enjekte edilmesi bir çözüm bulana kadar bir çözümdür ... bu yüzden bu yazı ... – born2net