小编Nim*_*imi的帖子

map操作符调用的方法中的可观察范围更改

我试图在map操作符调用的方法中返回之前更改我的数据,我发现该方法之外的所有其他变量都是 undefined

我在这里写了一个简单的代码来表示我的意思,记录的测试变量返回为undefined:

import {Observable} from "rxjs/Observable";
import {Injectable} from "@angular/core";
import {Http, Response} from "@angular/http";

@Injectable()
export class DataService {
    private API_URL= 'url...';
    private test = 1;

    constructor(private http: Http) {}

    getData(): Observable<any> {
        return this.http.get(this.API_URL)
            .map(this.extractData)
            .catch(this.handleError);
    }

    private extractData(res: Response) {
        let body = res.json();
        console.log(test);
        return body.data || {};
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会发生这种情况,如果它不是改变获取数据的方式,我怎么能在服务中做到这一点(而不是在订阅者组件中,因为我想根据与订阅者组件无关的另一个变量来更改数据)

rxjs angular

8
推荐指数
1
解决办法
1184
查看次数

从 chrome 内部页面访问 chrome Web 浏览器中的 chrome.send() 方法

我想知道是否可以使用可chrome.send()在 chrome 内部页面中访问的函数(如 )chrome://version来发送命令,例如chrome.send('restartBrowser')向 chrome 内部页面之外和我自己的自定义网页内部的 chrome 浏览器发送命令。

google-chrome

6
推荐指数
0
解决办法
2145
查看次数

使用 Angular 2 渲染器和使用 nativeElement 之间的区别

我想知道这段代码有什么区别:

export class SomeDirective implements OnInit {

    constructor(private _elRef: ElementRef){}

    ngOnInit(): any {
        this._elRef.nativeElement.style.backgroundColor = 'green';
    }
}
Run Code Online (Sandbox Code Playgroud)

和这个:

export class SomeDirective implements OnInit {

    constructor(private _elRef: ElementRef, private _renderer: Renderer){}

    ngOnInit(): any {
        this._renderer.setElementStyle(this._elRef, 'background-color', 'green');
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道第二个比第一个有一些优点,我只需要知道这些优点具体是什么。

angular

5
推荐指数
1
解决办法
1290
查看次数

标签 统计

angular ×2

google-chrome ×1

rxjs ×1