小编Tim*_*ter的帖子

找不到NgModule.使用skip-import选项跳过NgModule中的导入

当我使用CLI创建新组件时,我在本文的主题中收到错误:( ng g c my-component --project=my-project 没有创建组件)

我已经看到其他帖子有相同的错误消息,但它们都没有包括Nrwl/Nx,我相信它是以某种方式参与的.项目以Ng4开始,并升级为Ng6.

我有什么想法可以解决这个问题?

谢谢.

TTE

环境:

  • Angular CLI:6.0.8
  • 节点:8.9.4
  • 操作系统:win32 x64
  • 角度:6.0.6
  • @ angular-devkit/architect 0.6.8
  • @ angular-devkit/build-angular 0.6.8
  • @ angular-devkit/build-optimizer 0.6.8
  • @ angular-devkit/core 0.6.8
  • @ angular-devkit/schematics 0.6.8
  • @ angular/cdk 6.3.1
  • @ angular/cli 6.0.8
  • @ angular/material 6.3.1
  • @ ngtools/webpack 6.0.8
  • @ schematics/angular 0.6.1
  • @ schematics/update 0.6.8
  • rxjs 6.2.1
  • 打字稿2.7.2
  • webpack 4.8.3
  • nrwl/nx 6.1.0

更新#1

我试图--project完全放弃旗帜(这样ng g c my-component),但仍然遇到同样的问题.不知道那意味着什么.

angular nrwl

35
推荐指数
7
解决办法
3万
查看次数

电子IndexedDb限制?

这个Electron问题中,@ zcbenz评论说" 我们在Chrome浏览器中有相同的大小限制,这是'可用磁盘空间的1/3' ".该回复是从2016年初开始的.

我运行了这段代码:

const estimation = await navigator.storage.estimate();
console.log(`Quota: ${estimation.quota}`);
console.log(`Usage: ${estimation.usage}`); 
Run Code Online (Sandbox Code Playgroud)

它告诉我,我有100%的可用磁盘空间作为我的配额,所以我很困惑,找不到比2016年评论更新的东西,这也是电子专用的.

所以我的问题:

  • 这个正式改变了吗?
  • 如果你试图超过这个限制会发生什么(假设它不是真正100%的可用空间)?
  • Electron/Chromium会驱逐你的数据吗?

---电子v3.0.4

谢谢!

TTE

indexeddb electron

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

有什么理由在Electron应用程序中使用Web服务器(Express)?

我正在学习Electron,看到的所有内容都是使用file://协议加载页面,到目前为止,一切正常。我还看到了一些在Electron中使用Express的参考。

我的问题是-是否有任何理由在Electron应用程序中使用诸如Express的网络服务器?它能给你带来什么?

谢谢。

express electron

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

角直接DOM访问?

我知道这已经被问了无数次,并且在很多情况下都得到了答复。我相信我已经阅读了大多数。不幸的是,我能找到的一切

  1. 简单地陈述ElementRef.nativeElement是坏的,不使用它,但在途中不提供多大的电流有效的替代品。
  2. 已经过时了,仍在谈论渲染器已弃用以及其他beta问题。
  3. 涵盖了非常特定的用例,在该用例之外并不特别适用

所以我试图绕过当前的状况。v5是最近发布的,并且总体上在许多方面都趋于稳定。 当前很重要-我们正准备开始一个全新的项目,而没有任何遗留的东西,因此我们希望尽可能干净地开始。

采用以下方法是否安全:

  • 指令中,您将具有有效的ElementRef(否则,指令代码将不会运行),因此访问它的nativeElement属性是安全的。官方文档中几乎每个指令示例都这样做
  • 使用nativeElement与结合Renderer2(例如 this.renderer2.setStyle(elm.nativeElement, 'background-color', 'red');)是可以的,因为Renderer2神奇地使得它的工作(Renderer2是另一回事,我不能找到它如何执行这个魔术真的好文档)
  • 使用nativeElement始终是确定的,如果你不是,将来也不会,做服务器端呈现,或使用网络工作者(请忽略的事实是,我们不能预测未来)
  • 在其他情况下,把一个模板引用变量(#myElement)元素和使用上@ViewChild('myElement')@ViewChildren('myElement') myElements: QueryList<ElementRef>;或具有类似@ContentChild/ren('myElement',{read:ElementRef })获取和使用元素(一个或多个)
  • 始终练习良好的防御性编码,并nativeElement在使用前确保您确实有一个有效的密码。

请注意,在大多数情况下,我们仍在使用nativeElement它们,只是访问方式有所不同。对我来说,这nativeElement本身就不是问题,这完全取决于如何获得和使用它。我有什么想念的吗?以上任何问题吗?我试图获取事实,而不是意见,因此任何与官方文档的链接,甚至是非常好的当前博客文章,都将是不错的选择。

谢谢。

angular

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

这些额外的过程是什么?

在我的 Electron 应用程序中,我打开了主进程和两个渲染器窗口。为什么任务管理器显示8 个“electron.exe”进程?我希望它是3。

谢谢。

electron

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

为什么我无法从 DevOps 管道推送到 Azure Git

错误消息是(TF401027:您需要 Git 'GenericContribute' 权限才能执行此操作。详细信息:身份 'Build\8ec5f0f1-6bca-4182-bb3e-2d47a64262bf',范围 'repository'。)

我已获取该 GUID 并确认它所代表的帐户拥有存储库上的所有必要权限,以及更多权限:

  • 贡献
  • 创建分支
  • 推送时绕过策略

目标分支未锁定,并且未应用任何策略。

我的管道的 YAML 相关部分如下所示:

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      git config --global user.email "me@example.com"
      git config --global user.name "Build Agent1"
    pwsh: true

- checkout: self
  persistCredentials: true
  
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    pwsh: true
    script: |
      Write-Host "------------------------------------------------------------"
      # Update the file src\version.ts here
      git add src\version.ts
      git commit -m "Version bump from build pipeline [skip ci]"
      git push origin HEAD:Eval …
Run Code Online (Sandbox Code Playgroud)

git azure-git-deployment azure-pipelines azure-pipelines-yaml

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

TemplateRef 构造函数注入 TemplateRef 没有提供程序

也许我从根本上误解了某些东西,但我试图让 TemplateRef 指向我的组件模板(在下面的简单示例中只是“Hello”)。我已将代码精简到最低限度以尝试找出问题:

import { Component, TemplateRef} from '@angular/core';
@Component({
  selector: 'app-root',
  template: `Hello`,
  styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
  constructor(private tr: TemplateRef<any>) {}
}
Run Code Online (Sandbox Code Playgroud)

这实际上并没有“做”任何事情,因为我已经删除了所有功能,但我希望它能起作用。当我运行这段代码时,我收到一个错误:没有 TemplateRef 的提供者,但我在 SO 和其他地方看到了示例,这显然是有效的。我缺少什么?

角度 4.2.4

谢谢。

angular

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

如何按数组内的属性查询嵌套对象?

我收集了数千个(可能 30-40k)文档,其结构(大大简化)如下:

{
 propA:'123',
 obj: [
       {prop1:'a'},
       {prop1:'b'},
       {prop1:'c'}
 ],
 propB:456
}
Run Code Online (Sandbox Code Playgroud)

如何查询找到所有文档在哪里obj.prop1==='b'?我似乎无法弄清楚如何检查数组属性内对象的属性。这是使用1.5.1版本。

谢谢!

更新 已解决 - 请参阅我的答案...

lokijs

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

ngRx 继承的效果类不起作用

我在单一存储库中有两个应用程序,一个将是另一个的免费子集,因此免费应用程序中的所有功能都包含在非免费应用程序中。

我正在尝试设置我的效果,以便有一个核心效果类来实现所有常见效果,然后在非免费项目中扩展它以添加其他效果。这不起作用。只要这是我定义的所有效果,两个应用程序都可以使用核心效果,但是一旦我为非免费类添加更多效果,它就会停止识别核心效果。

这是设置:

  • core.effects.ts 包含 CoreEffects 类,该类定义了 2 个普通效果 - LoadLayout 和 ToggleSidebar
  • not-free.effects.ts 包含扩展 CoreEffects 类的 NotFreeEffects 类
  • free.effects.ts 包含 FreeEffects 类,它扩展了 CoreEffects 类并且没有定义任何额外的效果。
  • 在我的模块中,我导入 Effects 模块并指定继承的效果类:EffectsModule.forRoot([NotFreeEffects])EffectsModule.forRoot([FreeEffects]). 如果我理解正确,这意味着我的继承类设置正确,因为仍然可以看到核心效果(除非我在继承的类中定义了其他效果)

举个例子,LoadLayout 效果如下(其他类似):

@Effect()
  loadLayout$: Observable<Action> = this.actions$
    .ofType(CoreLayoutActions.LOAD_LAYOUT)
    .switchMap(() => this.layoutService.loadLayout())
    .map(
      (layoutState: ICoreLayoutState) =>
        new CoreLayoutActions.LoadLayoutSuccessAction(layoutState)
    );
Run Code Online (Sandbox Code Playgroud)

当我使用此设置运行任一应用程序时,一切正常。我在减速器中添加了日志语句,以便我可以看到 LoadLayoutSuccess 消息何时在减速器中传递和处理。

一旦我向 NotFreeEffect 类添加另一个效果(即免费应用程序未使用的效果),就不再处理核心效果 - 我在减速器中的日志语句不再指示 LoadLayoutSuccess 被调度。 除了向 not-free 类添加一个完全不相关的 Effect 之外,没有任何改变。免费的应用程序继续工作,而不是免费的。如果我从 not-free 中删除该附加效果,它会再次开始识别核心效果。

我错过了什么?你应该能够继承这样的效果类吗?

细节:

  • 角 CLI:1.7.1
  • 节点:8.9.4
  • 操作系统:win32 x64
  • Angular:5.2.7 ...动画、通用、编译器、编译器cli、核心、表单...语言服务、平台浏览器、平台浏览器动态...路由器 …

ngrx ngrx-effects angular

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

RxJS 6 扩展不是无限的?

我一直在玩 RxJS 来探索边缘并遇到了一些意想不到的事情。

考虑以下代码:

of(1)
.pipe(expand(x => of(x + 1)))
.subscribe(
    x => console.log(x), 
    err => console.log(err), 
    () => console.log('complete'));
Run Code Online (Sandbox Code Playgroud)

在 node 中运行时,我希望这会产生一个无限的数字列表,每个数字增加 1,当它超过 JavaScript 中的最大数字时最终会出错,或者我会用 Ctrl-C(在 Windows 上)杀死它。我没想到的是,在记录的数字少于 1000 个后,它会停止而不会出错。

我得到的是写入控制台的数字 1 - 783。

然后它停止了。

每次。

我运行它。它停在 783(这不是一个特殊数字 - 256、1024 等)。它不会记录错误或“完成”。它只是停止。

我原以为它会“永远”运行,抛出错误,或者至少注销“完成”。但它只是停止并将我返回到命令行。

我做了一些挖掘并认为它可能与可选的并发参数有关,Number.POSITIVE_INFINITY根据expand文档默认

但是,如果我明确指定此参数的值,我会得到同样奇怪的结果 - 即 1 的并发值(始终为 ~860)比并发值 1,000,000(回到 783)产生的值多于 100(~850) ,以及超过 200 (~840)。似乎大多数值都是在并发为 1 的情况下发出的,然后随着并发性的增加,它慢慢地下降到 783 的低值。也就是说,我不知道是否真的是并发影响了这一点,尽管它看起来确实相关。

我快速浏览了 expand 的源代码,但没有看到任何可以解释这一点的内容。

这不是我会在生产中运行的代码,但它激起了我的好奇心。有没有人对什么可以解释这一点有任何想法?

  • RxJS 6.3.2

  • 节点 8.9.4

谢谢,

电讯

rxjs rxjs6

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

角度内插值未在订阅时更新

  • 角 6.0.1
  • ngRx 6.0.1

我在我的视图中设置了一个内插值:

{{firstName}}

当它绑定到的字段的值发生变化时,它不会更新。但是,该值正在更改 - 如果我将其注销到订阅内的控制台,我会看到更新后的值。它只是不会在 UI 中更新。

这是相关的代码:

从我的组件订阅:

private subscribeToCurrentPerson(): void {
    this.tState$ = this.store
      .pipe(select(selectors.getCurrentPerson), takeWhile(() => this.componentActive))
      .subscribe((cp: Person) => {
        if (cp) {
          const name: string = cp.primaryName.value.parsedValue.givenNames[0];
          this.firstName = name;
          console.log('name: ' + name);  // <-- this shows correct new value
        }
  });
}
Run Code Online (Sandbox Code Playgroud)

subscribeToCurrentPerson从组件的 ngOnInit 调用。在此之前,该firstName属性是未定义的。

selectors.getCurrentPerson选择是这样的:

export const getCurrentPerson: MemoizedSelector<{}, Person> = 
    createSelector(getTState, (tState: ITState) => {
      console.log('selector: ', tState); // <-- …
Run Code Online (Sandbox Code Playgroud)

ngrx angular angular-changedetection

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