2017-08-02 7 views
1

不定ステータスで始まるinderterminate checkboxを作成する必要があります。私はあなたがチェックボックスをクリックしたときに、この機能の取得者(この部分は何の問題もなく動作します)と呼ばれる私のHTMLに不確定チェックボックスの初期化

<div *ngIf="item.CanSearch && item.SearchType === 'Bool'"><input type="checkbox" id="my-checkbox" name="insideListResourceIdsCB" (click)="indeterminateCheckbox($event.target)" /></div> 

をチェックボックスを作成し、これを行うに

/* function to create an indeterminate checkbox*/ 
public indeterminateCheckbox(cb) {  
    if (cb.readOnly) { 
     cb.checked = cb.readOnly = false; 
     this.insideListResourceIds = false; 
    } 
    else if (!cb.checked) { 
     cb.readOnly = cb.indeterminate = true; 
     this.insideListResourceIds = null; 
    } else if (cb.checked) { 
     this.insideListResourceIds = true; 
    } 
    this.getEmployeesOverview(); 
} 

問題が来るしかし、私は私の見解を読みます。 checboxは視覚的な状態が不確定である必要がありますが、これはjavascriptでのみ可能です。これを行うには、この関数を作成しました。

ngAfterViewInit() { 
     let checkbox = <any>$("#my-checkbox"); 
     checkbox.indeterminate = true; 
} 

ただし、私のビューを読み込むたびに、私のチェックボックスは空です。

enter image description here

私の質問は次のとおりです:たときにビューをロード私が正しくindeterminateにあるチェックボックスの表示状態を設定するにはどうすればよい私は私console.log(checkbox)これが結果であるとき、しかし、すべてのエラーを受信しませんか?

+0

あなたがangular2を使用していると仮定すると、あなたは[不定] = "true" の ''可能であった[不定] = 1つの属性 – Teh

答えて

2

私は

<input type="checkbox" indeterminate ... 

Plunker Example

そして第二のアプローチはちょうど

のような結合性を使用している可能性のように、今、あなたがそれを使用することができます indeteminate

@Directive({ 
    selector: 'input[type=checkbox][indeterminate]' 
}) 
export class IndeterminateDirective { 
    constructor(private elRef: ElementRef) {} 

    ngOnInit() { 
    this.elRef.nativeElement.indeterminate = true; 
    } 
} 

を設定する属性ディレクティブを活用します

[indeterminate]="true" 

Plunker Example

+0

すごい私も知りませんでした使用することができます!何かとてもシンプルな、ありがとう! – Nicolas

関連する問題