我刚刚遇到了自定义选择器,@ngrx我不能对这个功能感到惊讶.
继其使用情况books的selectedUser,我不能给一个真正的好理由使用自定义选择,例如:
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?
提前感谢任何见解.
我一直在谷歌上搜索并到处搜索,但找不到答案。
我只是对 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) 我正在编写我的第一个 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) 我基本上从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
假设我有一个Event集合:
export class Event {
startingTime: Date
}
Run Code Online (Sandbox Code Playgroud)
我想从最接近今天的位置开始显示它们,那OrderByUpcomingToLatestPipe会是什么样子?
<event-element *ngFor="let event of events | orderByUpcomingToLatest"></event-element>
当离今天最近的日期是第一个,离今天最远的日期是最后一个时,我希望数组按降序排列(已经过去的日期将以相同的方式排在最远的日期之后)
angular ×4
javascript ×3
ecmascript-6 ×1
graphql ×1
html ×1
httprequest ×1
modal-dialog ×1
ng-bootstrap ×1
ngfor ×1
ngrx ×1
node.js ×1
observable ×1
redux ×1
sorting ×1
typescript ×1
webstorm ×1