Returning array as Observable to Behavior subject
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I am applying todo filters in angular 6 with routing based on if todo is completed only completed(checked) todos should display on clicking completed link.
I managed to get todos that are completed in todoService (getTodos) function.
But as getTodos is Observable it was not allowing me to return me to todos array
Here is my code for service
public getTodos(query = ''): Observable<Todo>{
if(query === 'completed' || query === 'active'){
const isCompleted = query === 'completed';
let todos = this.allTodos.filter(todo => todo.completed === isCompleted);
console.log(todos);
// this.storageService.getTodos().subscribe(todos => this.allTodos.filter(todo => todo.completed === isCompleted));
// return this.todos.next('todos');
return this.todos.asObservable();
}else{
return this.todos.asObservable();
}
}
Full Link of project in stackblitz
Project link
PS: I am new to angular and still learning Observables/rxjs
angular typescript rxjs observable angular6
add a comment |
I am applying todo filters in angular 6 with routing based on if todo is completed only completed(checked) todos should display on clicking completed link.
I managed to get todos that are completed in todoService (getTodos) function.
But as getTodos is Observable it was not allowing me to return me to todos array
Here is my code for service
public getTodos(query = ''): Observable<Todo>{
if(query === 'completed' || query === 'active'){
const isCompleted = query === 'completed';
let todos = this.allTodos.filter(todo => todo.completed === isCompleted);
console.log(todos);
// this.storageService.getTodos().subscribe(todos => this.allTodos.filter(todo => todo.completed === isCompleted));
// return this.todos.next('todos');
return this.todos.asObservable();
}else{
return this.todos.asObservable();
}
}
Full Link of project in stackblitz
Project link
PS: I am new to angular and still learning Observables/rxjs
angular typescript rxjs observable angular6
add a comment |
I am applying todo filters in angular 6 with routing based on if todo is completed only completed(checked) todos should display on clicking completed link.
I managed to get todos that are completed in todoService (getTodos) function.
But as getTodos is Observable it was not allowing me to return me to todos array
Here is my code for service
public getTodos(query = ''): Observable<Todo>{
if(query === 'completed' || query === 'active'){
const isCompleted = query === 'completed';
let todos = this.allTodos.filter(todo => todo.completed === isCompleted);
console.log(todos);
// this.storageService.getTodos().subscribe(todos => this.allTodos.filter(todo => todo.completed === isCompleted));
// return this.todos.next('todos');
return this.todos.asObservable();
}else{
return this.todos.asObservable();
}
}
Full Link of project in stackblitz
Project link
PS: I am new to angular and still learning Observables/rxjs
angular typescript rxjs observable angular6
I am applying todo filters in angular 6 with routing based on if todo is completed only completed(checked) todos should display on clicking completed link.
I managed to get todos that are completed in todoService (getTodos) function.
But as getTodos is Observable it was not allowing me to return me to todos array
Here is my code for service
public getTodos(query = ''): Observable<Todo>{
if(query === 'completed' || query === 'active'){
const isCompleted = query === 'completed';
let todos = this.allTodos.filter(todo => todo.completed === isCompleted);
console.log(todos);
// this.storageService.getTodos().subscribe(todos => this.allTodos.filter(todo => todo.completed === isCompleted));
// return this.todos.next('todos');
return this.todos.asObservable();
}else{
return this.todos.asObservable();
}
}
Full Link of project in stackblitz
Project link
PS: I am new to angular and still learning Observables/rxjs
angular typescript rxjs observable angular6
angular typescript rxjs observable angular6
edited Nov 29 '18 at 6:29
Darshit
asked Nov 29 '18 at 6:23
DarshitDarshit
3517
3517
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You already have a BehaviorSubject
in your Service. You can just add a public Observable
to your service:
public todos$: Observable<Todo> = this.todos.asObservable();
And then in your getTodos
method:
public getTodos(query = ''): Observable < Todo > {
if (query === 'completed' || query === 'active') {
...
this.todos.next(todos);
}
else {
...
}
}
And in your Component, you can get the todos
by subscribe
to this Observable
using this:
todos;
constructor(private todoService: TodoService, ...) {}
...
this.todoService.todos$.subscribe(todos => this.todos = todos);
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
add a comment |
Todo myTodos;
todoService.getTodos('').subscribe(response => {
//here you can response - what you return from service
this.myTodos=response;
});
response is sothmething what you return form service
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53532992%2freturning-array-as-observable-to-behavior-subject%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You already have a BehaviorSubject
in your Service. You can just add a public Observable
to your service:
public todos$: Observable<Todo> = this.todos.asObservable();
And then in your getTodos
method:
public getTodos(query = ''): Observable < Todo > {
if (query === 'completed' || query === 'active') {
...
this.todos.next(todos);
}
else {
...
}
}
And in your Component, you can get the todos
by subscribe
to this Observable
using this:
todos;
constructor(private todoService: TodoService, ...) {}
...
this.todoService.todos$.subscribe(todos => this.todos = todos);
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
add a comment |
You already have a BehaviorSubject
in your Service. You can just add a public Observable
to your service:
public todos$: Observable<Todo> = this.todos.asObservable();
And then in your getTodos
method:
public getTodos(query = ''): Observable < Todo > {
if (query === 'completed' || query === 'active') {
...
this.todos.next(todos);
}
else {
...
}
}
And in your Component, you can get the todos
by subscribe
to this Observable
using this:
todos;
constructor(private todoService: TodoService, ...) {}
...
this.todoService.todos$.subscribe(todos => this.todos = todos);
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
add a comment |
You already have a BehaviorSubject
in your Service. You can just add a public Observable
to your service:
public todos$: Observable<Todo> = this.todos.asObservable();
And then in your getTodos
method:
public getTodos(query = ''): Observable < Todo > {
if (query === 'completed' || query === 'active') {
...
this.todos.next(todos);
}
else {
...
}
}
And in your Component, you can get the todos
by subscribe
to this Observable
using this:
todos;
constructor(private todoService: TodoService, ...) {}
...
this.todoService.todos$.subscribe(todos => this.todos = todos);
You already have a BehaviorSubject
in your Service. You can just add a public Observable
to your service:
public todos$: Observable<Todo> = this.todos.asObservable();
And then in your getTodos
method:
public getTodos(query = ''): Observable < Todo > {
if (query === 'completed' || query === 'active') {
...
this.todos.next(todos);
}
else {
...
}
}
And in your Component, you can get the todos
by subscribe
to this Observable
using this:
todos;
constructor(private todoService: TodoService, ...) {}
...
this.todoService.todos$.subscribe(todos => this.todos = todos);
answered Nov 29 '18 at 6:36
SiddAjmeraSiddAjmera
16.2k31239
16.2k31239
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
add a comment |
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
Thanks for the support Can you please fork in stackblitz so that i can understand it well. @SiddAjmera
– Darshit
Nov 29 '18 at 6:42
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
That worked! Thanks
– Darshit
Dec 1 '18 at 7:53
add a comment |
Todo myTodos;
todoService.getTodos('').subscribe(response => {
//here you can response - what you return from service
this.myTodos=response;
});
response is sothmething what you return form service
add a comment |
Todo myTodos;
todoService.getTodos('').subscribe(response => {
//here you can response - what you return from service
this.myTodos=response;
});
response is sothmething what you return form service
add a comment |
Todo myTodos;
todoService.getTodos('').subscribe(response => {
//here you can response - what you return from service
this.myTodos=response;
});
response is sothmething what you return form service
Todo myTodos;
todoService.getTodos('').subscribe(response => {
//here you can response - what you return from service
this.myTodos=response;
});
response is sothmething what you return form service
answered Nov 29 '18 at 6:39
Victor1125Victor1125
18510
18510
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53532992%2freturning-array-as-observable-to-behavior-subject%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown