小编Che*_*pan的帖子

在角度延迟加载中找不到模块

我在 Mac 环境下成功创建了一个 angular 项目

Angular CLI: 7.0.5
Node: 8.11.3
OS: darwin x64
Angular: 7.0.3
Run Code Online (Sandbox Code Playgroud)

现在我在 ubuntu 18.04 上使用设置运行相同的代码

Angular CLI: 7.3.9
Node: 12.9.1
OS: linux x64
Angular: 7.2.15
Run Code Online (Sandbox Code Playgroud)

但是在尝试延迟加载另一个模块时出现了一个非常奇怪的问题,我不断收到此错误错误:找不到模块“app/website/site.module”

这是我的项目结构

在此处输入图片说明

和 app-routing.module.ts

 const routes: Routes = [    
      {
        path: 'site',
        loadChildren: 'app/website/site.module#SiteModule',
      }
    ]
Run Code Online (Sandbox Code Playgroud)

路由用于在mac中工作但在ubuntu中失败

我查了一个不同的解决方案

const rootRoutes: Routes = [
  { path: 'site', loadChildren: './website/site.module#SiteModule' }
];
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作。

angular-routing angular angular-cli-v7

10
推荐指数
2
解决办法
6718
查看次数

Angular Service 为什么我们要在构造函数上注入

为什么我们在构造函数中注入服务作为这样的参数?

import { HeroService } from '../hero.service'; 
constructor(private heroService: HeroService) { }
Run Code Online (Sandbox Code Playgroud)

与其作为参数传递,不如我们在构造函数中注入:

import { HeroService } from '../hero.service'; 
constructor() {
    this.heroService=HeroService;
}
Run Code Online (Sandbox Code Playgroud)

是否可以按照上述方式进行?

angular

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

使用javascript填充角度输入

设置元素value不起作用。它不像用户打字。当我提交此输入时,弹出窗口告诉我我根本没有填写输入。我怎样才能像用户一样填充这个输入元素?

<div class="login-input input-group" data-ng-class="{'invalid' : !valid}">
<input id="alias-input" type="text" class="form-control ng-pristine ng-valid ng-empty ng-valid-maxlength ng-touched" tabindex="1" data-ng-model="formData.alias" data-ng-keydown="sendAlias($event)" maxlength="10" data-gemius-event="click" data-gemius-parameters="['place=login','inputbox=login','met=onclick']"
    spellcheck="false">
</div>
Run Code Online (Sandbox Code Playgroud)

我试过:

angular.element(document.querySelector("#alias-input")).val("foo");

document.getElementById('alias-input').value = 'foo';

javascript angularjs

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

即使使用盒子大小的 border-box 也可以弯曲项目

在下面的代码中,当我添加填充时,它应该添加到宽度,因为我正在使用border-box. 但它不起作用,为什么?谁能帮我。

如果我添加一些边距或填充,我child__wrapper会被推入新行,为什么?

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.wrapper {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  width: 100%;
}

.child__wrapper {
  height: 300px;
  flex: 0 0 33.3%;
  margin: 10px;
  box-sizing: border-box;
  background: rebeccapurple;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <div class="child__wrapper">1</div>
  <div class="child__wrapper">2</div>
  <div class="child__wrapper">3</div>
  <div class="child__wrapper">4</div>
  <div class="child__wrapper">5</div>
  <div class="child__wrapper">6</div>
  <div class="child__wrapper">7</div>
  <div class="child__wrapper">8</div>
  <div class="child__wrapper">9</div>
</div>
Run Code Online (Sandbox Code Playgroud)

html css flexbox

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

在 Angular 中创建动态响应式表单时,无法将变量设置为 FormControl 名称

我正在 Angular 中创建动态反应形式。但是在下面的代码中, level.name 不被接受,因为编译器不允许在 group() 内给出变量。它只允许固定值,如 - state、city 等而不是 level.name 变量,其中 level 是一个具有 name 字段的对象......

this.countryNextLevelsBeforeMan.forEach(**level** => {
  let l2 =<FormArray> this.l1FormGroup2.controls["l2"]; 
  l2.push(this.formBuilder.group({
    **level.name** : null   --> compilation error on this line as variable not getting allowed
  }))
});
Run Code Online (Sandbox Code Playgroud)

在 group 方法中,我想将控件名称作为变量 (level.name)。在 for 循环中,如果 level 是 {"name" : "State" , "id" : 2} 然后我想像下面那样设置它,

l2.push(this.formBuilder.group({
        **State** : null    --> No compilation error if we give fixed value
     }))
Run Code Online (Sandbox Code Playgroud)

(而不是 'State' 我希望它由 level.name 动态分配,因为 level.name 可以是 City、Street 等)

请帮忙!!!

reactive-forms angular angular-reactive-forms formarray

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