小编Vee*_*aha的帖子

Angular 7 routerLink指令警告'在Angular zone外部触发导航'

我正在努力使用Angular框架来使我的应用程序顺利运行,但我无法解决路由问题.我有一个顶级,AppComponentapp-routing.module.ts通过我的自定义管理导航SlideMenuComponent.我简化的html模板AppComponent:

<app-slide-menu [buttons]="menuButtons"></app-slide-menu>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

SlideMenuComponent的以下html为核心:

<nav><div *ngFor="let button of buttons">
    <a routerLink="{{button.routerLink}}"
    >{{button.name}}</a>
</div></nav>
Run Code Online (Sandbox Code Playgroud)

用户可以导航'/courses'到此幻灯片菜单,该菜单由CoursesComponent分页指向由指向CourseComponent服务器检索的特定s的链接监督.这些组件位于各自的courses.module.ts模块中courses-routing.module.ts.但是,当我点击任何这些链接时,我会收到Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?控制台警告,ngOnInit()不会被打开CourseCompontent,并且它不会更新,直到我点击页面上的任何按钮.我router.navigate()通过转发此任务解决了手动导航时出现此问题NgZone.runTask(router.navigate()),但为什么会发生anchor标签和routerLinkdirecrives?这是我的CoursesComponent代码摘录:

<nav><ul>
        <li *ngFor="let course of api.data | paginate: {
            currentPage: currentPage, itemsPerPage: limit, totalItems: api.total
        }">
           <a
               [routerLink]="course._id"
               [queryParams]="{ …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular angular-router angular-routerlink angular7

17
推荐指数
3
解决办法
9422
查看次数

C++如何使用不同的签名变量比较禁用特定行的编译器警告?

我的C++项目中有一个讨厌的编译器警告.它是一个模板化的函数,它检查它的参数是否适合特定类型的范围,它被提到作为模板参数(在标准库中找不到它,它有一个?).

我知道有问题的签名到无符号整数类型比较,因此我将这个函数专门用于不同的有符号整数,我首先检查有符号整数是否在签署到未进行比较之前是非负的.但是,gcc会对此安全案例发出警告.我不想完全禁用-Wsign-compare来禁用此警告,因为它是一个有用的警告.代码列在下面:

template <typename TRange, typename TSuspect, typename TCommonSignedness>
bool isInRangeOfHelper(const TSuspect & suspect,
                       const TCommonSignedness &,
                       const TCommonSignedness &)
{
    return std::numeric_limits<TRange>::min() <= suspect
         && suspect <= std::numeric_limits<TRange>::max();
}

template <typename TRange, typename TSuspect>
bool isInRangeOfHelper(const TSuspect & suspect, 
                       const std::true_type &, 
                       const std::false_type &)
{
    return suspect <= std::numeric_limits<TRange>::max();
}

template <typename TRange, typename TSuspect>
bool isInRangeOfHelper(const TSuspect & suspect, 
                        const std::false_type &, 
                        const std::true_type &)
{
    return 0 <= suspect 
           && suspect <= std::numeric_limits<TRange>::max();  // WARNING HERE …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
2
解决办法
348
查看次数

为什么单元类型交集的并集会导致 never 类型?

您能否解释一下为什么以下类型表达式会产生never类型?为什么第二个表达式的计算结果为"c"

type t1 = ("a" & "b") | ("c" & "d"); // never
type t2 = ("a" & "b") | "c"; // "c"
Run Code Online (Sandbox Code Playgroud)

generics types type-level-computation typescript

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