Coder Social home page Coder Social logo

ng-docs.github.io's People

Contributors

asnowwolf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ng-docs.github.io's Issues

ng-zerro插件 nz-input里面用了maxlength 编译后maxlength属性缺失?是不是attibute和property的问题?如何解决?

首次提问必读

这是什么?

这里是专门为中文母语的用户设置的问答区,欢迎直接使用中文进行提问。

港澳台同胞可直接使用繁体字,我能看懂(但很抱歉,我只能用简体字回答)。

这里不是文档纠错区,如果发现文档中有错误,请访问 https://github.com/angular/angular-cn/issues (同样欢迎用中文)。

如何提问?

  1. 先搜一下,看看是否有人问过

  2. 一次性描述清楚问题。

    避免让回答者找你反复沟通,如果长时间说不清问题,我可能会关闭问题。

    请尽量用 https://stackblitz.com/ 创建一个能重现问题的最小化工程,让回答者不用自己搭建环境。

  3. 请用客观语句简练描述,不要说客套话。

    客套话会增加阅读时间,无助于解决问题。如果实在感谢得无以复加,请帮我们宣传本问答区。

  4. 如果解决了你的问题,请给出反馈,不要关闭问题。

    因为人们搜索时默认会搜索开放的问题,所以为了避免重复提问,请保持开放。我只会关闭无价值的问题。

  5. 如果你自己找到了解决方案,欢迎分享在这里。也鼓励采用自问自答的形式。

我可以回答别人吗?

当然可以,而且非常欢迎。

我个人精力有限,无法一一答复,开设本问答区的主要目的是提供一个众所周知的地点让大家能互相交流互相帮助。

这是个模板。读完后请删除这些内容,不要带到提问中

6.2.3版本library编译问题

前几个版本都没问题(鬼知道我前几个版本用的啥,都是直接^..........),某天更新了下版本,编译后也都正常,正常调试,正常构建,但唯独ng build --prod 提示

ERROR in Error during template compile of 'AppModule'
  Function calls are not supported in decorators but 'CyiaHttpModule' was called.

折腾了半天发现了点端倪,
当new一个新项目,把原理的文件的复制过去后,再次编译,出现这个提示(之前也出现,但是为了控制变量新开了个)
导出路径是module->index.ts->public_api.ts->导入模块构建项目--prod失败
但!当把导出路径改成module->public_api.ts->导入模块构建项目--prod成功
对,就是不用中间那一层index.ts,虽然不算圆满的解决了,但是还是不清楚,为何在某个版本后,一个非常正常的导出会报错呢?这里究竟是哪里的问题?有人最近更新模块遇到过吗?


貌似不是上面的问题而是导出epxort * from 'xxx'
如果不显式指定就会出现上面的问题,很郁闷了,如果一个超大的项目真都这样的话不要类似?
是不是隐藏什么配置了?


又遇到其他问题....比如依赖突然不好使(引入后项目编译),必须变成前置依赖...........
是不是最近angular变动太大好好的一些东西突然都宕机了.....
所以说,没事别乱升版本......指不定哪个版本就出现未知问题了......

关于firdFox兼容性的问题

为了支持firefox<50版本,我们同一个项目打包两次:
dist_aot: // 支持firefox<50
ng build --aot --base-href --output-hashing=bundles --output-path=dist_aot --source-map=false --extract-css
dist: // else
ng build --prod --base-href --output-hashing=bundles

这里有两个问题: 1、为什么ng build --prod不支持Firefox<50的版本。报错(TypeError: this is undefined)。
2、ng build --aot 怎么使用命令uglify-js压缩代码?

多个 Observeable<T> 等待全部完成如何实现

我想要做一个类似于 下载队列的东西(当然我的情况是 访问API),
类似C# 里面的

Task[] tasks = new []{ Task.CompletedTask  };
await Task.WhenAll(tasks)

经过我的搜索,找到的了 rxjs 里面的 concat, merge, zip , 我选择是 zip (不是 rxjs/operators) 但是 请求完成后并没有触发 subscribe 的动作

angular 路由缓存 页面刷新的问题。

之前都有缓存路由。
在页面刷新的时候,由于缓存了路由,会先进一次缓存的路由,然后才会跳转到主路由,有什么方法可以在刷新的时候清掉路由的缓存,直接进主路由,不进缓存的路由吗?

请问怎样在ngForm值无效的时候禁止触发ngSubmit事件?

<div>
  <form (ngSubmit)="mySubmit()" #msgBoxForm="ngForm">
    <button mat-raised-button color="accent" (click)="rollDice()">
      RollDice
    </button>
    <input
      type="text"
      name="msgInputBox"
      [(ngModel)]="TextMessage"
      required
      #box (keyup.enter)="enterSubmit()"
      placeholder="Message" >
    <button
      type="submit"
      class="btn btn-success"
      [disabled]="!msgBoxForm.form.valid">
      Submit
    </button>
  </form>
</div>

当msgInputBox无值的时候,Submit按钮会被正常禁用,然而此时按下enter会同时触发enterSubmit()和mySubmit()两个方法。甚至在点击RollDice(没有设置为submit type)按钮的时候也会触发mySubmit()方法。怎么能只在点击Submit按钮的时候才触发mySubmit方法呢?
补充一下,刚发现按下enter甚至还会触发rollDIce()方法……具体来说是按下enter的时候就会触发mySubmit和rollDice,释放的时候会触发enterSubmit(),如果按住的话会不停地触发前两个方法。

angular 模板中有没有类似于Razor的`<text>` 的 假元素?

Razor 中 <text>abc</text> 输出后仅有 abc , text 元素实际并不存在

再 angular中, *ngIf , *ngFor 不能在同一元素上,在某些情况下 (如 <table>) 没法往里面擅自添加 div 等元素,这时候改怎么处理? 是否有类似的 假元素存在来解决这种问题?

在service work下无法跳跃播放mp3文件

我自己模仿了个音乐网站(后台是第三方的)。不使用service work情况下播放音乐时候是可以跳跃播放的。
我谷歌了下貌似是服务器需要返回206,还要做一些设置。那么在service work情况下 要如何设置呢。官网好像只对资源是否缓存有介绍。。。

mat-button 的背景动画 可以操作么?

我想做一个 类似于进度条(无限滚动的) 的button , 所以我想让 button 的 那个背景色 从左往右一直动作

我的问题:

  1. material 里面那个背景动画 叫什么名字
  2. 能否去操作, 怎么操作
  3. 如何创建我自己的 component 带有这个效果(click)?

国内Angular安装问题 ng install 一直失败

各位好!
目前我遇到的问题如下:
已经通过node.js安装了npm。
然后安装TYPESCRIPT命令成功。
同样通过NPM安装了Angular CRI:
npm install -g @angular/cli 
安装完成后得到版本如下:
Angular CLI: 6.2.2
Node: 8.12.0
OS: win32 x64
Angular:
...
然后install的时候有尝试 先指定cnpm到淘宝节点,但还是报错。报错信息如下:
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (E:\Projects\Angular\ag2\node_modules\node-gyp\lib\configure.js:484:19)
gyp ERR! stack at PythonFinder. (E:\Projects\Angular\ag2\node_modules\node-gyp\lib\configure.js:509:16)
gyp ERR! stack at E:\Projects\Angular\ag2\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\Program Files\nodejs\node.exe" "E:\Projects\Angular\ag2\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd E:\Projects\Angular\ag2\node_modules\node-sass
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

请问Angular安装跟python还有关?没有看到官网上有相关信息啊?

viewContainerRef实例获得的方法?

目前我知道的有两种,

  1. 依靠依赖注入,获得当前组件的实例.
  2. 依靠@ViewChild('',{read:ViewContainerRef}) 获得指定元素的实例
    那么有没有可以将普通的html元素转化成ViewContainerRef实例的方法?
    看了相关的api,属性和方法都没有找到相关解决方法.只有实例->元素,没有元素->实例,所以来问下有这样的手段可以转化吗?

chrome早期版本(21.0)不支持

主要兼容360安全浏览器6.0版本
Mozilla/5.0 (Windows NT 10.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1

出现以下报错
uncaught TypeError: undefined is not a function
uncaught ReferenceError: Promise is not defined

找遍了 angualr中文外文官网 github介绍页面。没有任何浏览器版本兼容报告。

路由守卫的异步处理问题

初学angular,发现路由守卫时候对于异步处理不知如何解决?
问题描述:
路由守卫中进行token身份认证,通过返回的认证结果进行跳转逻辑处理
首先, 创建了个服务, 用于token的认证逻辑处理
其次, 在守卫中通过订阅进行调用服务的认证方法
问题就是守卫中无法同步获取认证返回的布尔值.....
针对路由守卫异步的处理方式,给出一个具体的解决办法, 再次谢过!

最新ng6 拦截器实现,一直报错

核心代码:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpResponse<any>> {
        const authReq = req.clone({
            url: (req.url + '&token=ujusaruu19')
        });
        return next.handle(req).pipe(map((event: any) => {
            if (event instanceof HttpResponse && event.status === 200) {
                return req;
            } else {
                return of(event);
            }
        }),
            catchError((err: ErrorEvent) => {
                return err;
            })
        );
    }

问题:
catchError中参数报错提示就是参数类型不一致无法赋予。。。

ErrorHandler服务如何打印更多的信息

重写ErrorHandler服务如何获取更多的信息

如何能获取错误的具体信息,包括发生错误的文件、行号、列号等信息,现在只能获取到错误的message,包括错误的文件、行号,但是无法获取到错误的在文件中的列号

Angular5 单元测试中无法根据指定css 来获取dom

大家好,我有个需求是给页面做的导航栏,当点击子菜单,给对应的主菜单高亮,所以我给所有的菜单(除主菜单)加点击事件,功能已经完成,但是在做单元测试的时候出现根据指定css 来获取dom的问题。
我在ngAfterViewInit() 方法中给指定的dom动态的加上点击事件,代码如下
ngAfterViewInit(): void { this.addEventHandlerToMenus(); }

addEventHandlerToMenus() { const navItems = Array.from(document.querySelectorAll('.sidebar-nav .nav-item:not(.nav-dropdown) .nav-link')); console.log(navItems); for (const navItem of navItems) { navItem.addEventListener('click', (event) => { this.onNavLinkItemClicked(event); }); } }

但是我在运行单元测试的时候,navItems打印出来居然是null,所以我想可能是当单元测试运行的时候,dom还没有加载完成,所以document.querySelectorAll('.sidebar-nav .nav-item:not(.nav-dropdown) .nav-link') 这里是null,请问有没有什么解决方案?谢谢

zone

首次提问必读

这是什么?

这里是专门为中文母语的用户设置的问答区,欢迎直接使用中文进行提问。

港澳台同胞可直接使用繁体字,我能看懂(但很抱歉,我只能用简体字回答)。

这里不是文档纠错区,如果发现文档中有错误,请访问 https://github.com/angular/angular-cn/issues (同样欢迎用中文)。

如何提问?

  1. 先搜一下,看看是否有人问过

  2. 一次性描述清楚问题。

    避免让回答者找你反复沟通,如果长时间说不清问题,我可能会关闭问题。

    请尽量用 https://stackblitz.com/ 创建一个能重现问题的最小化工程,让回答者不用自己搭建环境。

  3. 请用客观语句简练描述,不要说客套话。

    客套话会增加阅读时间,无助于解决问题。如果实在感谢得无以复加,请帮我们宣传本问答区。

  4. 如果解决了你的问题,请给出反馈,不要关闭问题。

    因为人们搜索时默认会搜索开放的问题,所以为了避免重复提问,请保持开放。我只会关闭无价值的问题。

  5. 如果你自己找到了解决方案,欢迎分享在这里。也鼓励采用自问自答的形式。

我可以回答别人吗?

当然可以,而且非常欢迎。

我个人精力有限,无法一一答复,开设本问答区的主要目的是提供一个众所周知的地点让大家能互相交流互相帮助。

这是个模板。读完后请删除这些内容,不要带到提问中

端对端测试中,protractor的选择策略是什么?

选择一个元素,然后获得这个元素的值,不多说了,应该都知道

  title = 'protator-demo';
  ngAfterViewInit(): void {
        setTimeout(() => {
          this.title='123'
        }, 3000);
  }

但是当我在任意一个钩子中加定时器(估计不仅仅是钩子),当x秒后更改这个元素绑定的值时,出现问题了,
测试会卡x秒并最终获得改变的值

  <h1>
    Welcome to {{ title }}!
  </h1>
describe('测试', () => {
  beforeEach(() => {
    browser.get('')
  })
  it('元素选择测试', () => {
    let e1 = element(by.css('h1'))
    e1.getText().then((res) => {
      console.log('查看元素',res)
    })
    expect(e1.getText()).toEqual('Welcome to protator-demo!');
  })
})

那么正常人的想法,应该是,当页面获取完,拿到的应该是初始值,然后等待x秒,再取这个元素,获得的是改变的值,这样的测试才是有意义的.
那么只能拿到最终的改变值,从哪里都说不通,这样还怎么测试,毕竟状态测试也是一部分
所以取看了下protractor的文档,但是没找到相应的解决方法(文档还是针对angularjs讲解的........#= =)
这个问题应该只有大牛能玩的转了,毕竟1.angular官方没说明.2.小公司估计也不搞端对端,不知道哪位大牛能受累解答下,万分感谢

在学习教程HTTP的时候添加英雄,报错!!!!!

代码:
add(name: string): void {
name = name.trim();
if (!name) { return; }
this.heroService.addHero({name} as Hero)
.subscribe(hero => {this.heroes.push(hero); });
}

报错:
ERROR in src/app/component/heroes/heroes.component.ts(30,30): error TS2352: Conversion of type '{ name: string; }' to type 'Hero' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
Property 'id' is missing in type '{ name: string; }'.

响应式表单是的数据流向是单view->单model,不影响其他的view?

最近写个功能,简化后是这样的

<input type="text" [formControl]="formControl">
<input type="text" [formControl]="formControl">
  formControl: FormControl = new FormControl()
  • 正常人肯定认为,当第一个input或第二个输入的时候,是同时变化的(我就是个正常人:lol)
  • 但是其实不是,两个都是分别变动,并且互不影响的,并且哪个最后输入控件中保存哪个
  • 但是!,如果用代码patchValue(),那么两个都会更新值
  • 于是,我在想,是不是响应式表单本身的某种机制防止出现循环调用?于是想出下面解决方案
 this.formControl.valueChanges.subscribe((res) => {
      this.formControl.patchValue(res, {
        emitEvent: false
      })
    })
  • 当某一个变动的时候,进行一次发送,这样两个都能收到了,但是还是感觉怪怪的,毕竟不能原生解决,总感觉好像自己没学到家....

编译的library里的服务和application的服务是不通用的吗?

  1. 同时有 application和library两个类型项目(前者是正常开发者默认使用的类型,后者是发布给别人使用的时候用的)
  2. 在library中的服务其实已经在application的根模块声明了(并且都能正常调用),但是实际上运行会提示
ERROR Error: StaticInjectorError(AppModule)[TestComponent -> TestService]: 
  StaticInjectorError(Platform: core)[TestComponent -> TestService]: 
    NullInjectorError: No provider for TestService!
    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1062)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveToken (core.js:1300)
    at tryResolveToken (core.js:1244)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)
    at resolveNgModuleDep (core.js:8376)
    at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:9064)
    at resolveDep (core.js:9429)
  1. 然后为了研究到底是哪的问题,我把这个模块复制到了application项目里面一份,然后就正常了,
  2. 在我的认识中,除了懒加载(哪怕是懒加载,在根模块中声明了的服务,也会在懒加载中正常使用)是局部的,
    直接声明在组件中的,剩下的都应该是全局的吧?那么为何在根模块中声明的服务无法在library中使用.
  3. 突然想到是不是变量提升的问题,于是就把需要注入的服务改成这样
constructor(@Inject(forwardRef(() => TestService)) private http: TestService) { }

结果还是不行,
6. 改成token传入,倒是能传入使用了,但是问题是两个实例,我就想用一个实例来共享一下信息,这么样也不行
7. 最后还是求大牛级的帮忙解惑,最近刚开始研究模块的编译,发现各种坑........

post含有文件(图片)的表单数据到服务器失败

我用一个FormBuilder构建的表单,有这些表单项:name、age、icon(头像)...。
html表单像这样:<form [formGroup]="employee_form" enctype="multipart/form-data">。
表单中有一个“保存”按钮,像这样:<button nbButton hero (click)="save(employee_form.value)">Save

问题:
使用HttpClient的post方法发送表单数据到服务器,得到服务器响应 status: 400,错误消息:icon: Array [ "The submitted data was not a file. Check the encoding type on the form." ]
我意识到这可能是数据编码问题,我尝试在post的第三个参数中加入:
httpOptions = {
headers: new HttpHeaders(
{
'Content-Type': 'multipart/form-data',
})
};
再次发送post请求,仍然得到 status: 400,从错误消息来看,好像表单必填数据都没有发送到服务器。

应该如何处理表单数据并使用HttpClient的post方法发送表单数据到服务器?

生命周期钩子不执行

微信公众号支付接口,支付完成后回调里面跳转路由出现异常,这个跳转放在支付外面是没问题的.
定位了一下,发现

  1. 进入新的路由之后,只实例化了该组件,该组件的生命周期钩子都没有执行,页面没有正常渲染(上一个路由的页面还在,新页面只渲染了静态的);
  2. 当点击返回按钮时,该组件的钩子才开始执行(控制台不报错,有个warning:----Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.)

请问这个是什么原因造成的,有没有什么解决办法或者规避掉.

另: 在支付完成之后考虑过不跳转页面,使用ngif使当前支付页面的元素隐藏掉也行不通.

路由如何一次进行多次进行重定向?

相信这个问题大多数人遇到过,比如说,刚开始

  { path: '', redirectTo: '/t2', pathMatch: 'full' },
  { path: 't2', loadChildren: './t1/t1.module#T1Module' }

这个是能重定向跳转的.没毛病吧?
但是当第二次,加载了之后

   { path: '', redirectTo: 't3', },
    { path: 't3', component: T1Component }

就跳不过去了,必须刷新后才能跳
有的人可能说,
第一个中的重定向/t2改成/t2/t3就ok了,确实可以Ok,但是为什么?

  • 为什么按照我的理解,重定向第一次后,继续触发第二次,第三次这样的链式跳转,而不是必须写的清清楚楚的路径才能跳过去?
  • 毕竟写路由的是个自己也不知道多少层,所以如果能默认连续触发当然最好了,
  • 不知道有没有人研究过这种情况并给予解答,希望大牛们前来看看

Canot find module @angular/elements

首次提问必读

这是什么?

这里是专门为中文母语的用户设置的问答区,欢迎直接使用中文进行提问。

港澳台同胞可直接使用繁体字,我能看懂(但很抱歉,我只能用简体字回答)。

这里不是文档纠错区,如果发现文档中有错误,请访问 https://github.com/angular/angular-cn/issues (同样欢迎用中文)。

如何提问?

  1. 先搜一下,看看是否有人问过

  2. 一次性描述清楚问题。

    避免让回答者找你反复沟通,如果长时间说不清问题,我可能会关闭问题。

    请尽量用 https://stackblitz.com/ 创建一个能重现问题的最小化工程,让回答者不用自己搭建环境。

  3. 请用客观语句简练描述,不要说客套话。

    客套话会增加阅读时间,无助于解决问题。如果实在感谢得无以复加,请帮我们宣传本问答区。

  4. 如果解决了你的问题,请给出反馈,不要关闭问题。

    因为人们搜索时默认会搜索开放的问题,所以为了避免重复提问,请保持开放。我只会关闭无价值的问题。

  5. 如果你自己找到了解决方案,欢迎分享在这里。也鼓励采用自问自答的形式。

我可以回答别人吗?

当然可以,而且非常欢迎。

我个人精力有限,无法一一答复,开设本问答区的主要目的是提供一个众所周知的地点让大家能互相交流互相帮助。

这是个模板。读完后请删除这些内容,不要带到提问中

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.