2016-08-15 8 views
2

を公開するjs.dartを使用して:)私は私と一緒に裸してくださいプログラミングDARTへ新たなんだauth0のAPI

私はDART Angular2アプリケーションを書いているが、それは当面の問題とは無関係です。

ダーツでAuth0Lockを使用しようとしていますが、1https://pub.dartlang.org/packages/jsを使用してAPIを公開しています。

私はアプリケーションをデバッグするためにDartiumを使用しています。

ので、私は、次のauth0lock.dartファイルを使用してAuth0LockのAPIを露出している:

import 'package:js/js.dart'; 

@JS() 
class Auth0Lock { 
external factory Auth0Lock(String token, String domain, Object options); 
    external on(String event, Function func); 
    external show(); 
} 

は私が必要とするだけで基本的なものを露呈しました。

インポート「パッケージ:angular2/core.dart」

は、私は、次のコードを持っているauth0_service.dartという名前のファイルにAngular2サービスを作成しました。 'auth0lock.dart'をインポートします。 'app.config.dart'をインポートします。

@Injectable() 
class Auth { 
Auth0Lock lock; 

Auth() { 
    this.lock = new Auth0Lock(configObj.auth0.apiKey, configObj.auth0.domain,{}); 
} 
updateProfileName(data) { 
    var profile = data['profile'] != null ? data['profile'] : data; 
    print(profile['name']); 
} 

authenticated() { 
    return false; 
} 

login() { 
    this.lock.show().then(this.updateProfileName); 
} 


} 

また、私はauth0をロード私のindex.htmlを紹介します:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Demo App</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
    <link rel="stylesheet" href="www/styles.css"> 
    <script src="https://cdn.auth0.com/js/lock/10.0.0/lock.min.js"></script> 
    <script defer src="/web/main.dart" type="application/dart"></script> 
    <script defer src="/packages/browser/dart.js"></script> 
</head> 
<body> 
    <my-app></my-app> 
</body> 
</html> 

私は自分のアプリケーションを実行したとき、私はollowingエラーを取得:

EXCEPTION: No static method 'Auth0Lock.' declared in class 'Auth0Lock'. 

のでAuth0Lockが静的ではありませんメソッドでは、クラスのコンストラクタです。私はJSのAPIを間違って使用しなければなりません。

私はauth0lock.dartに次を付加する必要が

答えて

1

@JS() 
library test; 

実際に私は私が欲しいものにtestの名前を変更することができます... IIは、名前だけでJSタグとライブラリを追加する必要があります。それはそれを解決した。

関連する問題