Angular – Bitkorn Blog https://blog.bitkorn.de Developer Zeugz Fri, 12 May 2023 10:48:29 +0000 de-DE hourly 1 https://wordpress.org/?v=6.3.1 error NG8001: ‚ion-xyz‘ is not a known element https://blog.bitkorn.de/error-ng8001-ion-xyz-is-not-a-known-element/ Fri, 12 May 2023 10:42:44 +0000 https://blog.bitkorn.de/?p=1229 Mark Directory as => Cancel Exclusion Jetzt funktioniert die […]]]> Mit der IntelliJ (WebStorm, PhpStorm) kann man Ordner als „excluded“ markieren. Das hat auch Einfluss auf die Kompilierung der Ionic/angular/TypeScript App.

Wenn der Ordner „node_modules“ als „excluded“ gekennzeichnet ist, wird bei der Kompilierung nichts aus diesem Ordner gefunden.

Also, rechte Maus auf den Ordner und => Mark Directory as => Cancel Exclusion
Jetzt funktioniert die Kompilierung und auch im Code wird nicht gemeckert, dass was fehlt.

]]>
Angular wrapped in Cordova https://blog.bitkorn.de/angular-wrapped-in-cordova/ Sun, 29 Aug 2021 08:37:07 +0000 https://blog.bitkorn.de/?p=1043 Zuerst ein Cordova App Build bauen wie in Get Started Fast beschrieben.

Den Content aus dem Build von Angular in den www-Ordner vom Cordova Build kopieren.

In der index.html des Angular Projekts eine kleine Änderung:

<!-- from -->
<base href="/">
<!-- to -->
<base href="./">
]]>
Angular Map in ngModel https://blog.bitkorn.de/angular-map-in-ngmodel/ Thu, 03 Dec 2020 11:26:27 +0000 http://blog.bitkorn.de/?p=872 so nicht:

<input [(ngModel)]="myMap.get(id)">

…aber so:

<input [ngModel]="myMap.get(id)" (ngModelChange)="myMap.set(id, $event)">

Danke an stackoverflow.

]]>
Angular Template driven forms https://blog.bitkorn.de/angular-template-driven-forms/ Tue, 10 Mar 2020 11:30:28 +0000 http://blog.bitkorn.de/?p=738 Select-Option Dropdown

quantityUnits: key=uuid; value=was zu Anzeigen)
purchaseOrderListItem: das Objekt welches mit der Form angezeigt/bearbeitet werden soll

<div class="">
  <label for="quantityunit_uuid" class="label-tec">Mengeneinheit</label>
  <select id="quantityunit_uuid" name="quantityunit_uuid" class="w3-select" [(ngModel)]="purchaseOrderListItem.quantityunit_uuid">
    <option *ngFor="let quantityUnit of quantityUnits | keyvalue" [value]="quantityUnit.key">{{quantityUnit.value}}</option>
  </select>
</div>

Ein Input mit i10n:

<div class="">
  <label for="purchase_order_list_price" class="label-tec">Preis</label>
  <input id="purchase_order_list_price" class="w3-input"
         #purchase_order_list_price value="{{purchaseOrderListItem.purchase_order_list_price}}"
         (keyup)="updateValue('purchase_order_list_price', purchase_order_list_price.value)"
         l10nDecimal digits="1.2-2">
</div>
]]>
TypeScript document.getElementById().value https://blog.bitkorn.de/typescript-document-getelementbyid-value/ Mon, 09 Mar 2020 11:54:09 +0000 http://blog.bitkorn.de/?p=733 Die herkömmliche Art an die Value eines Input Elements zu kommen, funktioniert in TypeScript nicht.

JavaScript:

document.getElementById('my_id').value = 42;

TypeScript (3.7.5):

(document.getElementById('my_id') as HTMLInputElement).value = 42;

Dank auch mal wieder an stackoverflow.

]]>
angular page reload 404 https://blog.bitkorn.de/angular-page-reload-404/ Mon, 02 Mar 2020 10:13:29 +0000 http://blog.bitkorn.de/?p=731 ng build

und Seiten Reload gibt immer 404.

Um das zu beheben, in der app.module.ts folgendes:

// app.module.ts
import {HashLocationStrategy, LocationStrategy} from '@angular/common';
@NgModule({
  imports: [
    // ...
  ],
  declarations: [
    // ...
  ],
  providers: [
    {provide: LocationStrategy, useClass: HashLocationStrategy},
    // ...
  ],
  bootstrap: [AppComponent],
  exports: []
})
export class AppModule {
}

…und schon funzt es mit Angular 9.

]]>
node npm Zeug https://blog.bitkorn.de/node-npm-zeug/ Sun, 01 Mar 2020 09:56:32 +0000 http://blog.bitkorn.de/?p=729 Mehrfach ließen sich Kompilierungsprobleme in Angular damit lösen, dass man den Ordner ’node_modules‘ löscht und neu installiert:
Also, Ordner node_modules löschen und

npm install

machen.

nodejs installieren

github.com/nodesource/distributions

npm Notlösung

1.

npm cache clean --force

2. Ordner node_modules leeren
3.

npm install
]]>
Angular Zeug https://blog.bitkorn.de/angular-trinket/ Sat, 30 Nov 2019 12:59:26 +0000 http://blog.bitkorn.de/?p=685 Angular Child Module

cannot bind ngModel in child module

um [(ngModel)] in Child Modulen zu verwenden braucht es den Import von FormsModule in dem Child-Module.

// trinket.module.ts
import {FormsModule} from '@angular/forms';
@NgModule({
  imports: [
    CommonModule,
    TrinketRoutingModule,
    FormsModule
  ],
  declarations: [
    TrinketSearchComponent
  exports: [
    TrinketSearchComponent // TrinketSearchComponent soll auch ausserhalb vom TrinketModule verwendet werden
  ],
  providers: [
  ],
})
export class TrinketModule {
}

use component from parent module

Components kann man nicht einfach in app.module.ts bei ‚exports‘ hin schreiben und dann in Child Modulen verwenden. Grund ist, dass die Child Modules die Components aus dem Parent Module nicht erben, auch wenn sie in dem Parent Module bei ‚exports‘ drin steht.

Lösung: man erstellt ein Shared-Module. Das ist ein gewöhnliches Module mit Zeug drin. Hier können wir deklarierte Components bei ‚exports‘ hin schreiben. Dieses Modul können wir in unser Child Module importieren (auch bei ‚imports‘ hin schreiben) und somit deren Components verwenden.

HTTP Client – HttpClientModule

Um mit Angular Requests zu machen, braucht es das HttpClientModule – bzw. in einem Service den HttpClient.

Import HttpClientModule in der root AppModule Klasse:

import { HttpClientModule } from '@angular/common/http';

…und packe es zu den imports:

imports: [
  HttpClientModule,
  BrowserModule,
  AppRoutingModule,
  MyFirstModule, MySecondModule
],
]]>