在我的Angular6应用程序下,我使用HttpClient和一些标头注入到我的 htpp 调用以从我的后端服务器获取数据:
我的服务:
@Injectable()
export class LoadUserInfosService {
public _headers = new HttpHeaders().set('Content-Type', 'application/json');
constructor(private httpClient: HttpClient) {}
getUserPnsInfos(cuid): Observable<object> {
const headers = this._headers.append('login', login);
return this.httpClient.get(myBackUrl, {headers: headers});
}
}
Run Code Online (Sandbox Code Playgroud)
我订阅的组件:
loadUserInfosFromPns(login) {
this.loadUserInfosService.getUserPnsInfos(login).subscribe(infos => {
let receivedInfos: any;
receivedPnsInfos = infos ;
console.log(receivedPnsInfos);
if (pnsInfos !== null && receivedPnsInfos.cuid === cuid ) {
} else {
this.router.navigate(['unauthorized'], {skipLocationChange: true});
}
},
error => {
console.log(error);
});
}
Run Code Online (Sandbox Code Playgroud)
在 Chrome 或 IE11 上运行时,我收到一些关于我的请求标头的错误: …
我最近将Angular 6应用迁移到了Angular 7
我的package.json看起来像这样:
{
"name": "myApp",
"version": "3.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --public-host http://localhost:4200/",
"build": "ng build --prod",
"serve": "ng serve --optimization=true --source-map=true --eval-source-map=true --live-reload=true --aot=false --vendor-chunk=true",
"build-prod": "node --max_old_space_size=5000 ./node_modules/.bin/ng build --configuration=production",
"build-localProd": "node --max_old_space_size=5000 ./node_modules/.bin/ng build --configuration=localProduction",
"build-dev": "node --max_old_space_size=7000 ./node_modules/.bin/ng build --configuration=development",
"test": "ng test --source-map=false --watch=false --code-coverage",
"test-headless": "ng test --browsers=ChromeHeadless --watch=false --code-coverage",
"doc": "compodoc -p src/tsconfig.app.json -s --port 8081",
"lint": "ng lint",
"e2e": "ng e2e",
"sonar-scanner": …Run Code Online (Sandbox Code Playgroud) 我有这个脚本,我习惯于为动态结果做一个简单的投影
SELECT
M.nom_utilisateur,
SUM(M.montant_bulletin ) as Montant_Total_BS,
SUM(M.montant_payer ) as Montant_Total_payer,
COUNT(M.ref_bs ) as nbr_bs_total,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Remboursé")) as nbr_bs_total_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Non remboursé")) as nbr_bs_non_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "En cours")) as nbr_bs_en_cours,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND …Run Code Online (Sandbox Code Playgroud) 我有这些数据:
roles = [
{roleId: "69801", role: "ADMIN"}
{roleId: "69806", role: "SUPER_ADMIN"}
{roleId: "69805", role: "RB"}
{roleId: "69804", role: "PILOTE"}
{roleId: "69808", role: "VENDEUR"}
{roleId: "69807", role: "SUPER_RB"}
]
Run Code Online (Sandbox Code Playgroud)
我必须过滤我的表,以检查是否有一个对象包含一个特定的角色值.
我的功能应如下所示:
checkRoleExistence(role){
// if role exists on one of the objects return true
// else returne false
}
Run Code Online (Sandbox Code Playgroud)
使用它我会这样做:
let ifExists = this.checkRoleExistence("PILOTE") ;
Run Code Online (Sandbox Code Playgroud)
我想使用Ecmascript的"过滤器"功能.
建议?
我在 chrome 下使用selenium webdriver 和 node.js (javascript)。
在某些测试中,我必须使用他的相对路径上传文件(我要上传的文件与测试文件在同一目录中)
var fileInput = driver.findElement(webdriver.By.xpath('//*[@id="j_idt69:j_idt70_input"]'));
fileInput.sendKeys('./file.xml');
Run Code Online (Sandbox Code Playgroud)
奇怪的是我的测试失败了,我发现了这个错误:
My error handler... WebDriverError: unknown error: path is not absolute:
Run Code Online (Sandbox Code Playgroud)
事实上,我使用的是相对路径,因为我的测试旨在用于不同的位置(VMs、jenkins、pc..)。绝对路径对我没有用。
建议??
我正在使用我的Angular应用程序进行单元测试,
我的路由在特定模块中被删除,该模块是在app.module.ts下导入的,
这是我的路由模块:
APP-routing.module.ts
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { WelcomeComponent } from './welcome/welcome.component';
import { CustomersListComponent } from './customer/customers-list/customers-list.component';
import { CustomerDetailComponent } from './customer/customer-detail/customer-detail.component';
import { ApplicationParametersComponent } from './superAdministrator/application-parameters/application-parameters.component';
import { InscriptionComponent } from './inscription/inscription.component';
const routes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'login/:keyWording', component: LoginComponent },
{ path: …Run Code Online (Sandbox Code Playgroud) 在我的Angular 7应用程序下,我使用的是 mat-select 组件:
<mat-form-field class="col-md-3" color="warn">
<mat-select placeholder="Selectionner le code Edo"
id="codeEdo"
[(value)]="selectedCodeEdoValue"
ngDefaultControl
formControlName="codeEdo">
<mat-option (onSelectionChange)="onEdoSelectionChanged(edo )"
*ngFor="let edo of shopsList"
[value]="edo.edoId">
{{edo.edoId}}
</mat-option>
</mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
我的选项数据如下:
let shopsList= [
{
'edoId': '4010',
'storeName': 'ABBEVILLE'
}
,
{
'edoId': '3650',
'storeName': 'AGEN'
}
,
{
'edoId': '3298',
'storeName': 'AIX ALLEES PROVENCALES'
}
];
Run Code Online (Sandbox Code Playgroud)
我的目的是在选择一个选项时获取选定的对象数据,而不仅仅是值
例如,当我选择第一个选项时,我想得到这个:
result = {
'edoId': '4010',
'storeName': 'ABBEVILLE'
}
Run Code Online (Sandbox Code Playgroud)
不仅是值“4010”
正如你所看到的,我试过这个: (onSelectionChange)="onEdoSelectionChanged(edo )
但这总是激发我两个事件 …
javascript angular-material angular-material2 angular angular6
在我的Angular 7应用程序中,我以反应形式使用 Angular 材料的mat-select组件。
视图如下所示:
<mat-form-field class="col-md-3" color="warn">
<mat-select placeholder="Selectionner la boutique"
id="libelleShop"
[(value)]="selectedlibelleShopoValue"
ngDefaultControl
formControlName="libelleShop"
(selectionChange)="onShopSelectionChanged($event)">
<mat-option *ngFor="let shop of shopsList"
[value]="shop">
{{shop.storeName}}
</mat-option>
</mat-select>
Run Code Online (Sandbox Code Playgroud)
MD数据如下:
shopsList= [
{
'edoId': '2119',
'storeName': 'AIX LES BAINS'
},
{
'edoId': '2123',
'storeName': 'ANNEMASSE'
},
{
'edoId': '2460',
'storeName': 'ALENCON'
},
{
'edoId': '2478',
'storeName': 'Grand Evreux Carrefour'
},
{
'edoId': '2632',
'storeName': 'DESTRELAND'
}
]
Run Code Online (Sandbox Code Playgroud)
第一次加载后,选项成功显示在选择下拉列表中,并且我有一个按钮用于在单击时强制选择垫子的值。
我已经尝试过这个:
onClick(){
let shopObjToDisplay = {};
shopObjToDisplay['edoId'] = '2460';
shopObjToDisplay['storeName'] = …Run Code Online (Sandbox Code Playgroud) javascript angular-material angular-material2 angular angular-reactive-forms
在我的角度应用程序下
我使用此代码来设置自定义正文样式:
constructor(private elementRef: ElementRef) { }
ngOnInit() {
this.elementRef.nativeElement.ownerDocument.body.style.overflowY = 'hidden';
}
Run Code Online (Sandbox Code Playgroud)
对于某些特定的场景我必须添加“重要”
这会是这样的:
this.elementRef.nativeElement.ownerDocument.body.style.overflowY = 'hidden !important';
Run Code Online (Sandbox Code Playgroud)
但这是行不通的,并且“重要”没有添加到样式中。
要注意 ; 因为我需要将其应用于主体本身,而不是应用于组件之外的特定 html 元素,所以 ngStyle 无法做到这一点。
建议??
我正在使用docker swarm 模式主机将我的注册表中的一些图像部署到我的应用程序服务器中:
我在注册表中的图像看起来像这样(正在执行docker images):
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/myApp G02R00C09_myTag c1fc2242f9a0 2 hours ago 272MB
Run Code Online (Sandbox Code Playgroud)
在我的 docker compose 文件下,我的服务如下所示:
---
version: '3.4'
services:
ihm:
image: myRegistryServer:5000/myApp:G02R00C09_myTag
stdin_open: true
volumes:
- /opt/logs:/opt/logs
tty: true
ports:
- target: 80
published: 80
protocol: tcp
mode: host
deploy:
mode: global
placement:
constraints:
- node.labels.type == abc
healthcheck:
disable: true
Run Code Online (Sandbox Code Playgroud)
->执行后docker stack deploy:
我得到了我的筹码和我的服务以及运行(当我运行docker stack ls和docker service ls,一切正常)
-> …
docker dockerfile docker-registry docker-compose docker-swarm
angular ×7
javascript ×6
typescript ×3
angular-cli ×1
angular6 ×1
angular7 ×1
css ×1
docker ×1
docker-swarm ×1
dockerfile ×1
ecmascript-6 ×1
filtering ×1
karma-runner ×1
mysql ×1
node.js ×1
rest ×1
routing ×1
selenium ×1
unit-testing ×1