我看到奇怪的行为,因为通过解构赋值(或Object.assign)添加到对象的属性在传递时会出现,forRoot但在注入服务时不存在.此外,初始化后进行的更新在传递到forRoot服务时存在但在注入服务时不存在.这仅在使用AOT构建时发生.
我创建了一个重现问题的最小项目:https: //github.com/bygrace1986/wat
创建一个具有静态forRoot方法的模块,该方法将接受一个对象,然后通过它提供InjectionToken并注入到服务中.
TestModule
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TestDependency, TEST_DEPENDENCY, TestService } from './test.service';
@NgModule({
imports: [
CommonModule
],
declarations: []
})
export class TestModule {
static forRoot(dependency?: TestDependency): ModuleWithProviders {
return {
ngModule: TestModule,
providers: [
TestService,
{ provide: TEST_DEPENDENCY, useValue: dependency }
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
TestService的
import …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用mat-tab.我在html中添加了以下代码
<mat-tab-group>
<mat-tab label="Tab 1"> <app-latest-article></app-latest-article></mat-tab>
<mat-tab label="Tab 2"> <app-trending-article></app-trending-article> </mat-tab>
</mat-tab-group>
Run Code Online (Sandbox Code Playgroud)
在ts文件中
import {MatTabsModule} from '@angular/material/tabs';
Run Code Online (Sandbox Code Playgroud)
我收到了错误
<mat-tab-group>
<mat-tab label="Tab 1"> <app-latest-article></app-latest-article></mat-tab>
<mat-tab label="Tab 2"> <app-trending-article></app-trending-article> </mat-tab>
</mat-tab-group>
Run Code Online (Sandbox Code Playgroud) 我究竟做错了什么?
我正在尝试使用Bootstrap工具提示在Angular 5中工作.我们按照建议通过index.html页面的页脚设置了Javascript库.Bootstrap上的文档使用JQuery来获取元素,然后调用tooltip()它们上的函数.
想我可能也可以这样做,但是使用getElementById函数来获取按钮的句柄,我写了以下内容(按钮是在其上定义了工具提示的项目):
ngAfterViewInit(){
let button = document.getElementById('tooltipBtn');
button.tooltip();
}
Run Code Online (Sandbox Code Playgroud)
模板代码(单独的文件):
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom" id="tooltipBtn">
Tooltip on bottom
</button>
Run Code Online (Sandbox Code Playgroud)
我得到的错误(在浏览器控制台中):
ERROR
Error: button.tooltip is not a function
Run Code Online (Sandbox Code Playgroud) 我想从我的复选框中获取值,但我只能得到真或假.
这是我的模板:
<h4>Categories</h4>
<div class="form-check" *ngFor="let cat of categories$|async">
<input class="form-check-input" [(ngModel)]="cat.id" name="{{ cat.name }}" type="checkbox" id="{{cat.name}}">
<label class="form-check-label" for="{{cat.name}}">
{{cat.name}}
</label>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的组件
this.categories$ = this.storeService.getAllCategories().pipe(
map(result => (result as any).data),
tap(r => console.log(r))
)
Run Code Online (Sandbox Code Playgroud)
我的组件基本上从外部api获取类别列表
运行ng serve一个自定义语言环境数据的文档说明(https://next.angular.io/guide/i18n新角6),我得到这个错误:
Unknown option: '--locale'
Run Code Online (Sandbox Code Playgroud)
用delete-output-path和发生同样的事情named-chunks.我们现在怎么设置这个标志?
我有一些代码可以发布一些数据来创建数据记录。
它在服务中:
这是代码:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(private http: HttpClient) { }
create() {
const postedData = { userid: 1, title: 'title here', body: 'body text' };
return this.http.post('https://jsonplaceholder.typicode.com/posts', postedData, httpOptions).subscribe(result => {
console.log(result);
}, error => console.log('There was an error: '));
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是...我该怎么做才能从用户登录时获得该网址的要求...我如何传递凭据?
是否可以使用Angular CLI v6生成空白工作区?它可能包含初始应用程序但在默认projects文件夹中.
什么是正确的表达和导入Observable.of([]);.
import { of } from 'rxjs'; 不适合我.
从我的库中执行'ng build'时出现以下错误.
我目前正在使用Angular 6,但我相信这个错误与版本无关.
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:13:1:为导出的符号'KeycloakService'生成的元数据中遇到错误:
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:18 : 12:收集的元数据包含一个错误,将在运行时:只能初始化变量和常量,因为模板编译器需要此变量的值.
{"_ _ symbolic":"错误","消息":"变量未初始化","行":17,"字符":11}错误:/ home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:13:1:为导出的符号'KeycloakService'生成的元数据遇到错误:
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects /pf-siseg/src/lib/keycloak-service/keycloak.service.ts:18:12:收集的元数据包含将在运行时报告的错误:只能初始化变量和常量,因为此变量的值为模板编译器需要的.
{"_ _ symbolic":"错误","消息":"变量未初始化","行":17,"字符":11} at/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@ angular/compiler-cli/src/metadata/collector.js:707:31位于validateMetadata的Array.forEach()(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@ angular/compiler-cli/src/metadata/collector.js:695:46)在MetadataCollector.getMetadata(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/metadata/collector.js:550 :21)在Object.getSourceFileMetadata上的MetadataCache.getMetadata(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/metadata_cache.js:86:41) home.rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/compiler_host.js:112:56)at Object.readMetadata(/ home/rafaelvicio/desenv/my-lib TsompilerAotCompiler上的/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/metadata_reader.js:46:37)StaticSymbolResolver.getModuleMetadata中的TypeCheckHostAdapter.getMetadataFor(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/compiler_host.js:464:38)(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler/src/aot/static_symbol_resolver.js:480:49)在StaticSymbolResolver._createSymbolsOf(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules) /@angular/compiler/src/aot/static_symbol_resolver.js:268:33)
keycloak.service.ts:
import { Injectable } from '@angular/core';
import { KeycloakLoginOptions } from './keycloak.d';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import * as Keycloak from './keycloak';
export type KeycloakClient = Keycloak.KeycloakInstance;
type InitOptions = Keycloak.KeycloakInitOptions;
@Injectable()
export class KeycloakService {
constructor(private http: HttpClient) { }
static …Run Code Online (Sandbox Code Playgroud) angular ×10
angular-cli ×4
typescript ×3
angular5 ×2
angular6 ×2
javascript ×2
angular2-aot ×1
bootstrap-4 ×1
checkbox ×1
mat-tab ×1
npm ×1
rxjs ×1
rxjs5 ×1
rxjs6 ×1
xml2js ×1