2013-12-14 4 views
2

나는 기존의 jquery 플러그인에 액세스 할 수 있도록 angle.dart 구성 요소를 배우려고합니다. 어떻게 jQuery를 그림자 DOM에서 즉 구성 요소 내부 요소를 선택하기 위해 ...angular.dart 컴포넌트 내부에서 jquery 플러그인을 호출하는 방법은 무엇입니까?

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 { 
    String param; 
    Compiler compiler; 
    Injector injector; 
    Scope scope; 

    MyComponent(this.compiler, 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); 
     } 
    }); 
    } 
} 

불행하게도, '용기'빈 것 같다 : 나는 다음과 같은 일을 시도하고있다?

현재로서는 js를 가져 오는 가장 좋은 방법은 무엇입니까? 나는이를 발견했다 :

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

하지만 지금은 패키지 JS의 기능의 일부가 다트로 이동되는 것을 : JS, 내가 어떻게해야 무엇 하나 확실하지 않다.

답변

2

문제는 jQuery 문제 인 것 같습니다. (How do you interact with js from dart? 참조) JS :

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

소개 다트 : JS 패키지

패키지 : 아마와 함께 작동 할 JS는 비용에 온다 간단한 API를 제공합니다 js 크기의 증가 (왜냐하면 패키지 : js다트를 사용합니다 : 거울noSuchMethod).

js 네임 스페이스는 원하는대로 할 수 있습니다. 필자는 Js와의 상호 작용이 언제 끝나는 지 더 잘 볼 수 있도록 접두사를 사용하는 것을 선호합니다. 그러나 그것은 맛의 문제입니다.