小编And*_*iol的帖子

构造函数和ngOnInit之间的区别

Angular ngOnInit默认提供生命周期钩子.

ngOnInit如果我们已经有了,为什么要使用constructor

typescript ngoninit angular

946
推荐指数
16
解决办法
42万
查看次数

包含Angular 2+ Date Pipe格式的文本

我试图DatePipe在Angular 2中使用.我希望输出日期格式为:08/23/2017 at 11:07 AM.

但是,我无法找出at以我的日期格式包含文本的正确方法.

当我指定格式时: {{my_date | date:'MM/dd/yyyy at hh:mm a'}}

我明白了:08/23/2017 AMt 11:07 AM.

我试着在引号中包围文本: {{my_date | date:'MM/dd/yyyy "at" hh:mm a'}}

但这只是在输出中添加了引号:08/23/2017 "AMt" 11:07 AM.

唯一的方法是将它分成两个独立的管道,格式的两边是{{my_date | date: 'MM/dd/yyyy}} at {{my_date | date: 'hh:mm a'}}什么样的?

或者有没有办法逃脱ain,at以便它将显示文本at而不是AMt

pipe date-pipe angular

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

Angular 4延迟加载参数

您好我试图延迟加载"详细模块",同时通过URL发送参数.

这是我的懒加载路线:

{
    path: 'venue/:name/:id',
    loadChildren: () => System.import('../containers/activity-detail/activity-detail.module').then((file: any) => {
        return file.default;
    })
},
Run Code Online (Sandbox Code Playgroud)

我想路由到这个'activity-detail.module',然后使用":name"和"id:"参数加载详细信息.

加载的模块有自己的路由文件.

export const VenueDetailRoutes: Route[] = [
    {
        path: '',
        redirectTo: 'venue/:name/:id',  
        pathMatch: 'full'
    },
    {
        path: 'venue/:name/:id', 
        component: VenueDetailComponent,
        data: {
            shouldDetach: true, // Route will be resused. See CustomResuseStrategy.
            title: null
        }
    },
    {
        path: '**',
        redirectTo: '/'
    }

];
Run Code Online (Sandbox Code Playgroud)

似乎没有第一个默认对象没有任何作用.我收到错误:

{
    path: '',
    redirectTo: 'venue/:name/:id', 
    pathMatch: 'full'
},

TypeError: Cannot read property 'path' of null
Run Code Online (Sandbox Code Playgroud)

使用默认对象我得到错误:

Error: Cannot redirect to …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular

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

有没有办法在Angular中的子路由之前渲染父组件?

我有一个组件,其中定义了一个路由器插座(ParentComponent)。

<mat-accordion>some content</mat-accordion>
<mat-progress-bar *ngIf="loading"></mat-progress-bar>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

我也有一个带有路由定义的路由器模块:

{path: 'parent', component: ParentComponent, children: {path: 'sub', loadChildren: () => import('./sub/sub.module').then(mod => mod.SubModule)}}
Run Code Online (Sandbox Code Playgroud)

因此,它懒惰地加载SubModule模块,该模块只有一个路径,该路径在解析某些数据后呈现:

{path: '', component: SubComponent, resolve: {data: SubResolverService}
Run Code Online (Sandbox Code Playgroud)

默认情况下,用户先通过“父”路线,然后才使用按钮加载“父/子”,以便显示手风琴和载荷。

但是,当url被明确写入并且我们直接转到“父/子”路径时,应用程序将等待子解析器获取数据,并且只有在此之后它才会呈现手风琴和进度条,因此用户必须凝视空白页,直到加载了每个路线数据。

有没有一种方法可以先渲染父组件,然后显示进度条,然后才开始解析子路线,该方法才会显示?

angular angular-router

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

ngrx 订阅的商店不会在状态更改时更新 Angular5

我正在构建一个应用程序,该应用程序将城市名称发送到 api 端点并返回该城市的天气。

它使用两个操作,一个更新城市,使用名称作为有效负载,操作二加载返回的新数组以更新状态

效果使用switchMap映射api调用然后返回结果。

用于显示商店结果的 select 函数仅在页面加载(空数组)和第一组结果时检测商店更新

并且在之后没有检测到我商店内的变化

页面显示数组中的第一个对象,但状态中有 3 个对象。

在此处输入图片说明

应用状态:

import { Cities } from '../../model/weather';

//Holds data for city weather
export interface AppState {
  readonly cityWeather: Cities[];
}
Run Code Online (Sandbox Code Playgroud)

在 app.module 中:

import {cityWeather} from './weather/store/reducers/weather';

    export const reducers = {
        cityWeather
     };

 StoreModule.forRoot(reducers, {initialState: undefined})
Run Code Online (Sandbox Code Playgroud)

减速机:

export function cityWeather(state:Cities[] = [], action:Action) : any {
    switch (action.type)  {
        case LOAD_CITIES_ACTION:
        return  handleLoadCitiesAction(state, action);
        case UPDATE_CITIES_ACTION:
        console.log(state)
        return handleUpdateCitiesAction(state, action);
    default:
        return state;
    }

}
function  handleUpdateCitiesAction(state, …
Run Code Online (Sandbox Code Playgroud)

ngrx angular

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