标签: angular

如何强制组件在Angular 2中重新渲染?

如何强制组件在Angular 2中重新渲染?出于调试目的,使用Redux我想强制组件重新渲染它的视图,这可能吗?

angular2-changedetection angular

160
推荐指数
6
解决办法
17万
查看次数

如何获取RxJS Subject或Observable的当前值?

我有一个Angular 2服务:

import {Storage} from './storage';
import {Injectable} from 'angular2/core';
import {Subject}    from 'rxjs/Subject';

@Injectable()
export class SessionStorage extends Storage {
  private _isLoggedInSource = new Subject<boolean>();
  isLoggedIn = this._isLoggedInSource.asObservable();
  constructor() {
    super('session');
  }
  setIsLoggedIn(value: boolean) {
    this.setItem('_isLoggedIn', value, () => {
      this._isLoggedInSource.next(value);
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.但我有另一个不需要订阅的组件,它只需要在某个时间点获取isLoggedIn的当前值.我怎样才能做到这一点?

javascript rxjs angular

160
推荐指数
4
解决办法
13万
查看次数

Angular中的文件上传?

我知道这是一个普遍的问题,但我没有在Angular 2上传文件.我试过了

1)http://valor-software.com/ng2-file-upload/

2)http://ng2-uploader.com/home

......但失败了.有人在Angular上传过文件吗?你用了什么方法?怎么办?如果提供任何示例代码或演示链接,我们将非常感激.

file-upload angular2-http angular

160
推荐指数
7
解决办法
23万
查看次数

什么是未处理的承诺拒绝?

为了学习Angular 2,我正在尝试他们的教程.

我收到这样的错误:

(node:4796) UnhandledPromiseRejectionWarning: Unhandled promise rejection (r                                                                                                     ejection id: 1): Error: spawn cmd ENOENT
[1] (node:4796) DeprecationWarning: Unhandled promise rejections are deprecated.
In the future, promise rejections that are not handled will terminate the Node.
js process with a non-zero exit code.
Run Code Online (Sandbox Code Playgroud)

我在SO中经历了不同的问题和答案,但无法找出"未处理的承诺拒绝"是什么.

任何人都可以简单地解释一下它是什么Error: spawn cmd ENOENT,也是什么,当它出现时,我必须检查以摆脱这个警告?

javascript unhandled-exception spawn es6-promise angular

160
推荐指数
4
解决办法
26万
查看次数

如何使用Jasmine为私有方法编写Angular 2/TypeScript的单元测试

如何在角度2中测试私有函数?

class FooBar {

    private _status: number;

    constructor( private foo : Bar ) {
        this.initFooBar();

    }

    private initFooBar(){
        this.foo.bar( "data" );
        this._status = this.fooo.foo();
    }

    public get status(){
        return this._status;
    }

}
Run Code Online (Sandbox Code Playgroud)

我发现的解决方案

  1. 将测试代码本身放在闭包中或在闭包内添加代码,该代码存储对外部作用域中现有对象的局部变量的引用.

    稍后使用工具删除测试代码. http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/

如果您有任何问题,请建议我更好的方法来解决这个问题?

PS

  1. 像这样的类似问题的大部分答案都不能解决问题,这就是我问这个问题的原因

  2. 大多数开发人员都说你不测试私人功能,但我不是说他们错了或是对的,但我的案例有必要对私人进行测试.

unit-testing jasmine typescript angular

159
推荐指数
8
解决办法
7万
查看次数

如何使用多个参数调用Angular 2管道?

我知道我可以这样称呼管道:

{{ myData | date:'fullDate' }}
Run Code Online (Sandbox Code Playgroud)

这里的日期管道只有一个参数.从组件的模板HTML和直接在代码中调用具有更多参数的管道的语法是什么?

javascript angular2-pipe angular

159
推荐指数
4
解决办法
13万
查看次数

Angular 2显示和隐藏元素

我在隐藏和显示一个元素时遇到问题,该元素取决于Angular 2中的布尔变量.

这是显示和隐藏div的代码:

<div *ngIf="edited==true" class="alert alert-success alert-dismissible fade in" role="alert">
        <strong>List Saved!</strong> Your changes has been saved.
</div>
Run Code Online (Sandbox Code Playgroud)

变量被"编辑"并存储在我的组件中:

export class AppComponent implements OnInit{

  (...)
  public edited = false;
  (...)
  saveTodos(): void {
   //show box msg
   this.edited = true;
   //wait 3 Seconds and hide
   setTimeout(function() {
       this.edited = false;
       console.log(this.edited);
   }, 3000);
  }
}
Run Code Online (Sandbox Code Playgroud)

元素被隐藏,当saveTodos函数启动时,元素会显示,但是3秒后,即使变量返回false,元素也不会隐藏.为什么?

typescript angular

158
推荐指数
7
解决办法
42万
查看次数

在Angular 2/Typescript中声明全局变量的最佳方法是什么

我希望Angular 2Typescript语言中随处可以访问一些变量.做这个的最好方式是什么?

typescript angular

158
推荐指数
8
解决办法
27万
查看次数

angular2风格指南 - 有美元符号的财产?

查看angular2代码示例,我们看到一些带有$ sign的公共属性:

  <....>
  private missionAnnouncedSource = new Subject<string>();
  private missionConfirmedSource = new Subject<string>();
  // Observable string streams
  missionAnnounced$ = this.missionAnnouncedSource.asObservable();
  missionConfirmed$ = this.missionConfirmedSource.asObservable();
  <....>
Run Code Online (Sandbox Code Playgroud)

谁能解释一下:

  • 为什么使用$(这种表示法背后的原因是什么?总是将它用于公共财产)?
  • 使用公共属性但不使用方法(例如missionAnnouncements(),missionConfirmations()) - 再次,这是ng2应用程序的约定吗?

在官方风格指南中似乎没有任何相关内容吗?

angular

156
推荐指数
4
解决办法
6万
查看次数

在配置文件中为ng服务设置默认主机和端口

我想知道我是否可以在配置文件中设置主机和端口,所以我不必输入

ng serve --host foo.bar --port 80
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

ng serve
Run Code Online (Sandbox Code Playgroud)

angular-cli angular

154
推荐指数
8
解决办法
20万
查看次数