虽然这与Angular 2 beta.17看起来相同,但是'Observable <Response>'类型中不存在属性'map'
这是一个新版本,这些解决方案不适用于这个新发布的版本
我已经更新到最新的Angular 2 rc1并且无法编译.我有没有承认'承诺'的问题我最终直接安装es6-promise打字来解决这个问题.我试过输入各种导入语句但没有运气.我正在2015年的visual studio中运行
import 'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/map';
return this._http.post(url, null, args).map(extractData).toPromise();
Run Code Online (Sandbox Code Playgroud)
但继续得到'Observable'类型不存在属性'map'
我的包文件是
"dependencies": {
"@angular/common": "2.0.0-rc.1",
"@angular/compiler": "2.0.0-rc.1",
"@angular/core": "2.0.0-rc.1",
"@angular/http": "2.0.0-rc.1",
"@angular/platform-browser": "2.0.0-rc.1",
"@angular/platform-browser-dynamic": "2.0.0-rc.1",
"@angular/router": "2.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"bootstrap": "^3.3.6",
"breeze-client": "~1.5.6",
"handlebars": "^4.0.5"
},
"devDependencies": {
"typescript": "^1.8.10",
"typings": "^0.8.1",
"gulp": "^3.9.1",
"jasmine-core": "~2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": …Run Code Online (Sandbox Code Playgroud) 升级到Angular 2后,Visual Studio 2015中的rc1打字稿调试停止了工作.我在meta标签中添加了以前的版本,但这导致现在关于'require'的所有其他类型的问题都是未定义的.有没有人能够让这个工作呢?
这是我的system.config.js文件
(function (global) {
// map tells the System loader where to look for things
var map = {
'app': 'app', // 'dist',
'rxjs': 'node_modules/rxjs',
'@angular': 'node_modules/@angular'
};
// packages tells the System loader how to load when no filename
// and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
};
var meta = {
'*.js': { scriptLoad: true } //this allows TS debugging in VS …Run Code Online (Sandbox Code Playgroud) 我正在使用angular 2 rc1和新路由器@ angular/router
在应用程序组件中,我有一个导航部分和路由器插座
<nav>
<a *ngIf="auth?.userName == null" [routerLink]="['/login']">Login</a>
<a *ngIf="auth?.userName != null" (click)="logout()">Logout</a>
{{auth?.userName}}
</nav>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
我将一个loginService注入app组件并订阅ngOnInit中的一个事件
ngOnInit() {
this.loginService.loginSuccess.subscribe(this.loginSuccess);
}
ngOnDestroy() {
this.loginService.loginSuccess.unsubscribe();
}
private loginSuccess(res: IAuthResponse) {
this.auth = res;
}
Run Code Online (Sandbox Code Playgroud)
当我导航到我的'/ login'路由页面/组件时,我的loginService是inject,loginService定义了一个事件
@Output() loginSuccess = new EventEmitter<IAuthResponse>();
Run Code Online (Sandbox Code Playgroud)
在成功登录我的服务后,登录服务会引发该事件
this.loginSuccess.next(response);
Run Code Online (Sandbox Code Playgroud)
我能够在订阅的loginSucess上的app组件中设置断点,并且数据被传递,但是'this'是未定义的.
private loginSuccess(res: IAuthResponse) {
this.auth = res; //this is undefind
}
Run Code Online (Sandbox Code Playgroud)
如何从在路由器插座中托管的组件中使用的服务触发的事件更新应用程序组件