小编Kes*_*vid的帖子

ngrx - createSelector vs Observable.combineLatest

我刚刚遇到了自定义选择器,@ngrx我不能对这个功能感到惊讶.

继其使用情况booksselectedUser,我不能给一个真正的好理由使用自定义选择,例如:

export const selectVisibleBooks = createSelector(selectUser, selectAllBooks, (selectedUser: User, allBooks: Books[]) => {
    return allBooks.filter((book: Book) => book.userId === selectedUser.id);
});
Run Code Online (Sandbox Code Playgroud)

而不是像:

export const selectVisibleBooks = Observable.combineLatest(selectUser, selectAllBooks, (selectedUser: User, allBooks: Books[]) => {
    return allBooks.filter((book: Book) => book.userId === selectedUser.id);
});
Run Code Online (Sandbox Code Playgroud)

我试图说服自己的记忆化createSelector是关键的部分,但据我了解,它不能执行这些性能提升到非原始值,因此它不会真正节省非原始切片任何计算,通过使用Rx' s distinctUntilChanged操作员combineLatest可以解决.

那么我错过了什么,我为什么要使用@ngrx/selector

提前感谢任何见解.

observable redux ngrx angular combinelatest

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

无法识别 ES6 - NodeJS 和 WebStorm

我一直在谷歌上搜索并到处搜索,但找不到答案。

我只是对 Typescript 有点熟悉。开始在我的 GraphQL NodeJS 服务器上工作,并希望使用 Typescript 进行更安全、更轻松的编码。

需要做的第一件事是将当前的 JS 版本设置为 ES6,所以我做到了。

另外我这样设置tsconfig

{
"compilerOptions": {
    "module": "es6",
    "target": "es6",
    "noImplicitAny": false,
    "outDir": "./build",
    "sourceMap": true
},
"exclude": [
    "node_modules"
]
Run Code Online (Sandbox Code Playgroud)

}

我的 index.js

import * as express from 'express';
import * as graphqlHTTP from 'express-graphql';
import {Schema} from './src/schema/Schema';

const PORT = 3000;

const app = express();

const graphqlOption: graphqlHTTP.OptionsObj = {
  schema: new Schema().getSchema(),
  pretty: true,
  graphiql: true
};

app.use('/graphql', graphqlHTTP(graphqlOption));

app.listen(PORT, ()=> {
  console.log("listening …
Run Code Online (Sandbox Code Playgroud)

javascript node.js webstorm typescript ecmascript-6

4
推荐指数
1
解决办法
3756
查看次数

*NgFor不显示数据

我正在编写我的第一个 Angular2 应用程序。

我有一个BankAccountService从后端服务器获取数据的服务,以及一个bank-account.component使用此服务来简单显示未排序的 accountNumbers 列表的服务。

通过 chrome devtool 进行调试,我能够看到数据已正确获取并存储在bankAccounts数据成员中,但由于某种原因,ul没有显示任何内容。

银行账户服务:

import { Injectable } from '@angular/core';
import {client} from '../app.module';
import gql from 'graphql-tag';
import {ObservableQuery} from "apollo-client";

@Injectable()
export class BankAccountService{
    bankAccounts: any[] = [];

    constructor() {
        this.queryBankAccounts();
    }

    queryBankAccounts(): any{
        let queryObservable: ObservableQuery = client.watchQuery({
            query: gql`
              {
                bankAccounts {
                  id
                  accountNumber
                  userOwners{
                    firstName
                  }
                 bankId
                  branchId
                  transactions{
                    amount
                    payerId
                    recipientId
                  }
                }
              }
            `,
            pollInterval: 50
        });

        let …
Run Code Online (Sandbox Code Playgroud)

httprequest graphql ngfor angular

4
推荐指数
1
解决办法
2万
查看次数

无法打开最简单的模态

我基本上从ng-bootstrap Modal Documentaion复制了Modal示例,似乎我无法打开它.

只要我点击按钮打开Modal,Chrome的控制台就会大喊:

Uncaught TypeError: Cannot set property stack of [object Object] which has only a getter
Run Code Online (Sandbox Code Playgroud)

提前致谢!

编辑:

这是我的模态组件代码:

import {Component} from '@angular/core';

import {NgbModal, ModalDismissReasons} from '@ng-bootstrap/ng-bootstrap';

@Component({
    selector: 'add-transaction',
    templateUrl: './app/components/add-transaction/AddTransaction.html'
})
export class AddTransaction {
    closeResult: string;

    constructor(private modalService: NgbModal) {}

    open(content) {
        this.modalService.open(content).result.then((result) => {
            this.closeResult = `Closed with: ${result}`;
        }, (reason) => {
            this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
        });
    }

    private getDismissReason(reason: any): string {
        if (reason === ModalDismissReasons.ESC) {
            return 'by …
Run Code Online (Sandbox Code Playgroud)

javascript modal-dialog bootstrap-modal ng-bootstrap angular

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

如何使用 Angular2 管道按最接近今天的日期排序

假设我有一个Event集合:

export class Event {
  startingTime: Date
}
Run Code Online (Sandbox Code Playgroud)

我想从最接近今天的位置开始显示它们,那OrderByUpcomingToLatestPipe会是什么样子?

<event-element *ngFor="let event of events | orderByUpcomingToLatest"></event-element>

编辑:

当离今天最近的日期是第一个,离今天最远的日期是最后一个时,我希望数组按降序排列(已经过去的日期将以相同的方式排在最远的日期之后)

html javascript sorting angular2-pipe angular

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