comment appeler un plugin jquery depuis un composant angular.dart?

J’apprends à propos des composants angular.dart en essayant d’en créer un qui accédera à un plugin jquery existant. J’essaie quelque chose comme ce qui suit:

library mylib; import 'dart:html'; // querySelector import 'package:js/js.dart'; // javascript import 'package:angular/angular.dart'; @NgComponent( selector: 'aSelector', templateUrl: 'partial.html', cssUrl: 'style.css', publishAs: 'ctrl', map: const { 'param': '=>param' } ) class myComponent extends NgShadowRootAware { Ssortingng param; Comstackr comstackr; Injector injector; Scope scope; MyComponent(this.comstackr, this.injector, this.scope); void onShadowRoot(ShadowRoot shadowRoot) { this.scope.$watch((int) => shadowRoot.querySelector('.myContainer').text.length, (currentValue, previousValue, Scope scope) { if (currentValue != previousValue) { var container = context.jQuery('.myContainer', shadowRoot); var options = map({ 'p1': 1, 'p2': 2 }); container.jqplugin(options); } }); } } 

Malheureusement, le ‘conteneur’ semble être vide … Comment faire en sorte que jQuery sélectionne un élément qui est à l’intérieur d’un composant, c’est-à-dire dans shadow shadow?

BTW, quelle est la méthode actuellement recommandée pour importer js? J’ai trouvé ceci:

 import 'package:js/js.dart' as js; 

mais maintenant qu’une partie des fonctionnalités du paquet js est déplacée dans dart: js, je ne sais pas ce que l’on est censé faire.

Le problème semble être un problème jQuery . Peut-être que cela fonctionnerait avec:

 var container = context.jQuery(shadowRoot.querySelector('.myContainer')); 

A propos de dart: js versus package: js (voir Comment interagissez-vous avec js depuis dart? ):

package: js fournit une Api plus simple, qui entraîne une augmentation de la taille de js (car package: js utilise dart: mirrors et noSuchMethod ).

À propos de l’espace de noms js, vous pouvez faire ce que vous voulez. Personnellement, je préfère utiliser un préfixe pour mieux voir quand une interaction avec Js est faite. Mais c’est une question de goût.