Tag: rxjs

BehaviorSubject与Observable?

我正在研究Angular RxJs模式,我不明白BehaviorSubject和Observable之间的区别。 根据我的理解,BehaviorSubject是一个可以随时间变化的值(可以订阅,订阅者可以收到更新后的结果)。 这似乎是一个Observable完全相同的目的。 什么时候你会使用一个Observable vs一个BehaviorSubject? 通过Observable使用BehaviorSubject是否有好处,反之亦然?

如何closures外部点击下拉菜单?

我想closures我的login菜单下拉菜单,当用户点击下拉菜单中的任何地方,我想用Angular2和Angular2的“方法”来做到这一点… 我已经实施了一个解决scheme,但我真的不觉得有信心。 我认为必须有一个最简单的方法来达到同样的结果,所以如果你有任何想法…让我们来讨论:)! 这是我的实现: 下拉组件: 这是我的下拉列表的组件: 每次将此组件设置为可见时(例如:当用户单击某个button以显示该组件时),它将订阅存储在SubjectsService中的“全局”rxjs主题userMenu 。 而且每一次被隐藏,都会取消订阅这个主题。 每次点击该组件模板中的任何地方都会触发onClick()方法,该方法只是将事件冒泡(和应用程序组件) 这是代码 export class UserMenuComponent { _isVisible: boolean = false; _subscriptions: Subscription<any> = null; constructor(public subjects: SubjectsService) { } onClick(event) { event.stopPropagation(); } set isVisible(v) { if( v ){ setTimeout( () => { this._subscriptions = this.subjects.userMenu.subscribe((e) => { this.isVisible = false; }) }, 0); } else […]

使用TypeScript从Angular2的http数据链接RxJS Observable

我目前正在尝试自学Angular2和TypeScript,在过去的4年中与AngularJS 1. *愉快地合作。 我不得不承认,我讨厌它,但是我确定我的灵感即将到来…无论如何,我已经在我的虚拟应用程序中写了一个服务,它将从我写的服务JSON的虚假后端获取http数据。 import {Injectable} from 'angular2/core'; import {Http, Headers, Response} from 'angular2/http'; import {Observable} from 'rxjs'; @Injectable() export class UserData { constructor(public http: Http) { } getUserStatus(): any { var headers = new Headers(); headers.append('Content-Type', 'application/json'); return this.http.get('/restservice/userstatus', {headers: headers}) .map((data: any) => data.json()) .catch(this.handleError); } getUserInfo(): any { var headers = new […]

Angular 2 2.0.0-rc.1属性'map'在types'Observable <Response>'上不存在与问题报告不一样

而这看起来像Angular 2 beta.17一样的问题:属性“地图”不存在types“Observable <Response>” 这是一个新版本,这些解决scheme不适用于这个新的发布版本 我已经更新到最新的Angular 2 rc1,无法编译。 我有没有承认'承诺'的问题,我最终安装es6-承诺打字直接解决这个问题。 我已经尝试了各种import报表,但没有运气。 我正在使用visual studio 2015 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(); 但继续得到属性'地图'不存在types'可观察' 我的包文件是 "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", […]

Angular 2 + Ionic 2:检测对象是否被修改

问)如果我有一个对象的负载属性,所有绑定到一个窗体中的字段,当对象发生变化时如何捕获? 我不想在每个字段上放置(blur)事件,因为页面已经很重,这可能会导致页面上的听众太多。 例如 目的: var person = { name: string, email: string, phone: string }; 形成: <input [(ngModel)]="person.name" type="text" /> <input [(ngModel)]="person.email" type="text" /> <input [(ngModel)]="person.phone" type="text" />

Angular 2 beta.17:Property'map'在types'Observable <Response>'上不存在

我刚刚从Angular2 beta16升级到beta17,而这又需要rxjs 5.0.0-beta.6。 (在这里更新日志: https : //github.com/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28 )在beta16中,所有关于Observable / mapfunction的工作都很顺利。 在升级后出现以下错误,当打字稿尝试传送时出现以下错误: 属性'map'在types'Observable'上不存在(我曾经用过可观察的地图) c:/path/node_modules/rxjs/add/operator/map.d.ts(2,16):错误TS2435:环境模块不能嵌套在其他模块或命名空间中。 c:/path/node_modules/rxjs/add/operator/map.d.ts(2,16):错误TS2436:环境模块声明不能指定相对模块名称。 我已经看到这个问题/答案,但它不能解决问题: Angular2 beta.12和RxJs 5 beta.3的可观察错误 我的appBoot.ts看起来像这样(我已经引用了rxjs / map): ///<reference path="./../node_modules/angular2/typings/browser.d.ts"/> import {bootstrap} from "angular2/platform/browser"; import {ROUTER_PROVIDERS} from 'angular2/router'; import {HTTP_PROVIDERS} from 'angular2/http'; [stuff] import 'rxjs/add/operator/map'; import 'rxjs/add/operator/toPromise'; import {enableProdMode} from 'angular2/core'; import { Title } from 'angular2/platform/browser'; //enableProdMode(); bootstrap(AppDesktopComponent, [ ROUTER_PROVIDERS, […]

什么是“回拨地狱”以及RX如何解决这个问题?

有人可以给一个清晰的定义,一个简单的例子,解释什么是一个“callback地狱”的人不知道JavaScript和node.js? 什么时候(在什么样的设置)发生“callback地狱问题”? 为什么会发生? “callback地狱”总是与asynchronous计算有关吗? 或者也可以在单线程应用程序中“callback地狱”? 我在Coursera参加了Reactive Course,Erik Meijer在他的一个演讲中表示,RX解决了“回拨地狱”的问题。 我问在Coursera论坛上什么是“回拨地狱”,但我没有明确的答案。 通过一个简单的例子解释“callback地狱”之后,你能否展示RX如何解决这个简单例子中的“callback地狱问题”?

为什么我们需要使用flatMap?

我开始使用RxJS,我不明白为什么在这个例子中我们需要使用像flatMap或concatAll这样的函数; 这里的数组数组在哪里? var requestStream = Rx.Observable.just('https://api.github.com/users'); var responseMetastream = requestStream .flatMap(function(requestUrl) { return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl)); }); responseMetastream.subscribe(url => {console.log(url)}) 如果有人可以直观地解释发生的事情,这将是非常有帮助的。

Angular2 http.get(),map(),subscribe()和可观察模式 – 基本理解

现在,我有一个初始页面,我有三个链接。 一旦你点击最后的“朋友”链接,适当的朋友组件就开始了。 在那里,我想获取/获取我的朋友列表进入friends.json文件。 直到现在一切工作正常。 但我仍然是使用RxJs的observables,map,订阅概念的angular2的HTTP服务的新手。 我试着去理解它并阅读了一些文章,但是直到我开始实际工作之前,我不能正确地理解这些概念。 这里我已经做了除了HTTP相关的工作之外的plnkr。 Plnkr myfriends.ts import {Component,View,CORE_DIRECTIVES} from 'angular2/core'; import {Http, Response,HTTP_PROVIDERS} from 'angular2/http'; import 'rxjs/Rx'; @Component({ template: ` <h1>My Friends</h1> <ul> <li *ngFor="#frnd of result"> {{frnd.name}} is {{frnd.age}} years old. </li> </ul> `, directive:[CORE_DIRECTIVES] }) export class FriendsList{ result:Array<Object>; constructor(http: Http) { console.log("Friends are being called"); // below code is […]

什么是不同的RxJS主题的​​语义?

这个主题的文档是稀疏的,很难发现一个“入口点”。