小编Abn*_*ner的帖子

RequestOptions迁移Angular 5

我在Angular 4中使用自定义请求选项,我在执行以下操作:

默认情况下,请求options.service.ts

@Injectable()
export class DefaultRequestOptions extends BaseRequestOptions {
  headers = new Headers({
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  });

  merge(options?: RequestOptionsArgs): RequestOptions {
    var newOptions = super.merge(options);
    const token: string = localStorage.getItem('token');
    if (token) {
      newOptions.headers.set('token', token);
    }
    return newOptions;
  }
}
Run Code Online (Sandbox Code Playgroud)

App.Module.ts

providers: [ // expose our Services and Providers into Angular's dependency injection
    { provide: RequestOptions, useClass: DefaultRequestOptions }
  ]
Run Code Online (Sandbox Code Playgroud)

但是在迁移通知之后,新文件夹http/common/http中的RequestOption不可用

我想知道我是否仍然可以在Angular 5中使用类似的东西,或者使用新的HTTPClient没有意义吗?对我来说,主要的优点是只设置在一个地方,而不必将其附加到我的所有要求.

我最初在angular docs中得到了代码:https://github.com/angular/angular.io/blob/master/public/docs/_examples/server-communication/ts/src/app/default-request-options. service.ts

typescript angular

12
推荐指数
1
解决办法
9873
查看次数

动态加载现有组件Angular 2 Final Release

我正在尝试在最终版本2.0.0中动态加载组件.

使用RC5我使用以下代码加载:

创建一个指令来加载控件:

import {
  CheckboxComponent, CheckboxListComponent,DatePickerComponent
} from '../components/';

@Directive({
      selector: '[ctrl-factory]'
    })
    export class ControlFactoryDirective implements OnChanges {
      @Input() model: any;

      constructor(private vcRef: ViewContainerRef, private resolver: ComponentResolver) {
      }

      create(cp) {
        this.resolver.resolveComponent(cp)
          .then(factory => {
            const injector = ReflectiveInjector.fromResolvedProviders([], this.vcRef.parentInjector);
            this.vcRef.createComponent(factory, 0, injector, []);
            let ch = this.vcRef.createComponent(factory, 0, injector, []).instance;
            ch.model = this.model;
        });
      }

      ngOnChanges() {
        if (!this.model) return;

        switch (this.model.type) {
          case 'checkbox':
            this.create(CheckboxComponent);
            break;
          case 'checkboxlist':
            this.create(CheckboxListComponent);
            break;
          case 'datepicker':
            this.create(DatePickerComponent);
            break;
          default:
            break; …
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

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

标签 统计

angular ×2

typescript ×2

javascript ×1