2016-04-11 11 views
0

ich mit Dart und AngularJS arbeitete 2, ich will select2 die Ansicht verwenden, aber es funktioniert nicht, das ist mein Code:JQuery in dart wählen und AngularJS 2

Code in html

<div class="form-group"> 
<label for="nivelEducativo" class="col-sm-2 control-label">Nivel Educativo</label> 
<div class="col-sm-4"> 
<select class="select_profession form-control" id="nivelEducativo" 
*ngIf="paramsByTypeCode != null" [(ngModel)]="model.situacionEducativaId"> 
    <option *ngFor="#param of paramsByTypeCode['PRT014']" 
    value="{{param.id}}">{{param.nombre}}</option> 
</select> 
</div> 
</div> 
... 
<script> 
    function __selectProfession(selector) { 
    $(selector).select2({ 
    placeholder: "Select One", 
    allowClear: true 
    }); 
} 
</script> 

Code in Dart

void ngAfterViewInit(){ 
    new Timer(new Duration(seconds: 1),()=>js.context.callMethod('__selectProfession',[".select_profession"])); 
    } 

die select2 nicht funktioniert, aber wenn ich ngIf die select2 Werke markieren entfernen, aber es zeigt nicht die Liste der Berufe, arbeitet die select2 gut ohne angular2. Ich möchte wissen, wie kann ich damit arbeiten?

Danke für alle.

Antwort

1

Statt

*ngIf="paramsByTypeCode != null" 

Verwendung

[hidden]="paramsByTypeCode == null" 

Dann existiert das Element, auch wenn paramsByTypeCode ist null sonst *ngIf es aus dem DOM entfernt und jQuery kann es nicht finden.

bin ich nicht sicher, was die Absicht dieses Code

new Timer(new Duration(seconds: 1),()=>js.context.callMethod('__selectProfession',[".select_profession"])); 

ist, aber ich denke, es sollte

new Future.delayed(new Duration(seconds: 1),()=>js.context.callMethod('__selectProfession',[".select_profession"])); 
+0

ich den Tag gelegt werden [versteckt], aber es ist das gleiche, die select2 wird aufgerufen, aber die Liste des Berufes wird nicht angezeigt, sie ist leer, mit dem Tag ngif ist die Liste nicht leer, aber sie funktioniert nicht als select2 – Ronald

+0

Können Sie einen Plunker bereitstellen? Ich bin mit diesen Widgets nicht vertraut, aber ich könnte mir ansehen, was passiert, wenn Sie einen Plunker bereitstellen. –