Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用js.dart公开auth0 API_Dart_Auth0 - Fatal编程技术网

使用js.dart公开auth0 API

使用js.dart公开auth0 API,dart,auth0,Dart,Auth0,我正在编写一个Dart Angular2应用程序,但它与手头的问题无关 我试图通过使用1公开dart的API来使用Auth0Lockhttps://pub.dartlang.org/packages/js. 我正在使用Dartium调试应用程序 因此,我将使用以下Auth0Lock.dart文件公开Auth0Lock API: import 'package:js/js.dart'; @JS() class Auth0Lock { external factory Auth0Lock(Str

我正在编写一个Dart Angular2应用程序,但它与手头的问题无关

我试图通过使用1公开dart的API来使用Auth0Lockhttps://pub.dartlang.org/packages/js.

我正在使用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();
}
我只暴露了我需要的基本东西

然后,我在名为
auth0\u service.dart
的文件中创建了一个Angular2服务,该文件包含以下代码:

导入“包:angular2/core.dart”; 导入“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>

所以Auth0Lock不是静态方法,它是类的构造函数。所以我一定是用错了JSAPI。

我需要在
auth0lock.dart
前面加上以下内容:

@JS()
library test;
实际上,我可以将
test
重命名为我想要的任何东西。。。我只需要添加js标签和带有名称的库。这就解决了问题

@JS()
library test;