在服务中导入 dart:html 出现异常 未找到动态提供程序
Import dart:html in Service got exception No provider found for dynamic
我有一个工作 UserService
类似于 AngularDart 教程中的 HeroService
BrowserClient
。
现在我需要使用 localStorage
来保存 API 响应。
导入 dart:html
后,我刷新浏览器,控制台突然出现错误:
EXCEPTION: No provider found for dynamic: UserService -> dynamic.
当我删除导入时,服务运行很好。
这是我的用户服务代码。
import 'dart:convert';
import 'dart:html';
import 'package:http/http.dart';
import 'package:my_app/src/instance_logger.dart';
class UserService with InstanceLogger {
static final _headers = {'Content-Type': 'application/json'};
static const _authUrl = 'https://my.domain/api-token-auth/';
String get loggerPrefix => 'UserService'; // or set ''
final Client _http;
UserService(this._http);
dynamic _extractData(Response resp) => json.decode(resp.body)['data'];
Exception _handleError(dynamic e) {
log(e); // for demo purposes only
return Exception('Server error; cause: $e');
}
}
在组件元数据中:
providers: [ClassProvider(UserService)],
如何在服务中使用dart:html
?如果我想访问 localStorage
.
谢谢。
dart:html 和 package:http/http.dart 不幸的是有一个名为 Client
.
的 class
如何解决此冲突是 隐藏 不需要的 class 不随其包一起导入。
改变
import 'dart:html';
到
import 'dart:html' hide Client;
这将解决碰撞问题。您也可以给导入一个别名,例如:
import 'dart:html' as html;
然后你可以使用 localStorage
通过使用前缀 html.localStorage
;
当我 运行 遇到这个问题时,我只是从 dart:html 导入中隐藏了 Client
class。
我有一个工作 UserService
类似于 AngularDart 教程中的 HeroService
BrowserClient
。
现在我需要使用 localStorage
来保存 API 响应。
导入 dart:html
后,我刷新浏览器,控制台突然出现错误:
EXCEPTION: No provider found for dynamic: UserService -> dynamic.
当我删除导入时,服务运行很好。
这是我的用户服务代码。
import 'dart:convert';
import 'dart:html';
import 'package:http/http.dart';
import 'package:my_app/src/instance_logger.dart';
class UserService with InstanceLogger {
static final _headers = {'Content-Type': 'application/json'};
static const _authUrl = 'https://my.domain/api-token-auth/';
String get loggerPrefix => 'UserService'; // or set ''
final Client _http;
UserService(this._http);
dynamic _extractData(Response resp) => json.decode(resp.body)['data'];
Exception _handleError(dynamic e) {
log(e); // for demo purposes only
return Exception('Server error; cause: $e');
}
}
在组件元数据中:
providers: [ClassProvider(UserService)],
如何在服务中使用dart:html
?如果我想访问 localStorage
.
谢谢。
dart:html 和 package:http/http.dart 不幸的是有一个名为 Client
.
如何解决此冲突是 隐藏 不需要的 class 不随其包一起导入。
改变
import 'dart:html';
到
import 'dart:html' hide Client;
这将解决碰撞问题。您也可以给导入一个别名,例如:
import 'dart:html' as html;
然后你可以使用 localStorage
通过使用前缀 html.localStorage
;
当我 运行 遇到这个问题时,我只是从 dart:html 导入中隐藏了 Client
class。