GVKun编程网logo

angularjs $超时没有延迟参数原因(angular设置请求超时时间)

16

在这里,我们将给大家分享关于angularjs$超时没有延迟参数原因的知识,让您更了解angular设置请求超时时间的本质,同时也会涉及到如何更有效地angulajsangularjs$timeout

在这里,我们将给大家分享关于angularjs $超时没有延迟参数原因的知识,让您更了解angular设置请求超时时间的本质,同时也会涉及到如何更有效地angulajs angularjs $timeout没有延迟参数的原因、angular – 在没有延迟加载的情况下路由到子路由模块、angularjs $timeout没有延迟参数的原因、angularjs – angular / jasmine:错误:没有要刷新的延迟任务的内容。

本文目录一览:

angularjs $超时没有延迟参数原因(angular设置请求超时时间)

angularjs $超时没有延迟参数原因(angular设置请求超时时间)

在一些脚本中,我可以找到例如

$timeout(function () {    $scope.my = 1;            });

而不是简单

$scope.my = 1;

立即调用$ timeout的目的是什么?

答案1

小编典典

这是一个hack。:)但通常的目的是等待$digest周期结束,然后设置$scope.my1。完成所有监视后,将调用超时。

angulajs angularjs $timeout没有延迟参数的原因

angulajs angularjs $timeout没有延迟参数的原因

在几个脚本中我可以找到例如
$timeout(function () {
    $scope.my = 1;            
});

而不是简单

$scope.my = 1;

调用$ timeout没有延迟的目的是什么?

这是一个黑客。 :)但通常的目的是等待到$ digest周期结束,然后将$ scope.my设置为1.超时在所有手表完成后调用。

angular – 在没有延迟加载的情况下路由到子路由模块

angular – 在没有延迟加载的情况下路由到子路由模块

我想拥有多个路由模块,以保持我的应用程序清洁和易于阅读.我目前使用延迟加载SubComponent,但我不想这样做.所以我正在寻找一种方法来改变它.无论如何,这是目前正在运行的代码.

我有以下两个路由文件.

APP-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes,RouterModule } from '@angular/router';

const routes: Routes = [
  { path: '',component: HomeComponent },{ path: 'sub',loadChildren: './sub/sub.module#SubModule' }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],exports: [RouterModule]
})

子routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes,component: SubComponent,children: [
    { path: 'new',component: SubeditComponent }
  ] },];

@NgModule({
  imports: [RouterModule.forChild(routes)],exports: [RouterModule]
})

它的工作方式很好,但我不想对这个SubComponent应用延迟加载.所以,理想情况下我想将app-routing.module.ts更改为:

import { NgModule } from '@angular/core';
import { Routes,component: SubComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],exports: [RouterModule]
})

这将不起作用,并导致以下错误:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'sub/new'
Error: Cannot match any routes. URL Segment: 'sub/new'

SubComponent的大小会大幅增加,我不想因为自己的原因而应用延迟加载.所以无论如何,有没有办法在避免延迟加载的同时使用多个路由文件?

解决方法

您是否尝试过这样加载:

{path:’sub’,loadChildren :()=>子模块}

你可以找到更多细节here.

angularjs $timeout没有延迟参数的原因

angularjs $timeout没有延迟参数的原因

在一些脚本中我可以找到例如
$timeout(function () {
    $scope.my = 1;            
});

而不是简单

$scope.my = 1;

没有延迟地拨打$timeout的目的是什么?

这是一个黑客. :)但通常意图是等到$digest循环结束然后将$scope.my设置为1.在所有监视完成后调用超时.

angularjs – angular / jasmine:错误:没有要刷新的延迟任务

angularjs – angular / jasmine:错误:没有要刷新的延迟任务

我正在测试我的一个指令,我得到以下错误

Error: No deferred tasks to be flushed

我需要测试的代码是在$timeout内

$timeout(function () {
    $window.doStuff();
});

因此,当我想检查doStuff是否被调用时,我做了

$timeout.flush();
expect($window.doStuff).toHaveBeenCalled();

但是,现在我需要测试一种我不希望调用doStuff的情况.所以我做了:

$timeout.flush();
expect($window.doStuff).not.toHaveBeenCalled(); // Notice the not here!!

但是,因为没有调用$timeout,$timeout.flush()给了我这个错误.

所以问题是,测试这种情况的首选方法是什么?

解决方法

使用$timeout.verifynopendingTasks()检查是否没有添加任务.

检查角度文档here:

Verifies that there are no pending tasks that need to be flushed.

关于angularjs $超时没有延迟参数原因angular设置请求超时时间的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于angulajs angularjs $timeout没有延迟参数的原因、angular – 在没有延迟加载的情况下路由到子路由模块、angularjs $timeout没有延迟参数的原因、angularjs – angular / jasmine:错误:没有要刷新的延迟任务的相关信息,请在本站寻找。

本文标签: