form
タグを使用せずにMEANアプリケーションの入力にDateフィールドを追加しようとしています。私のソリューションがクロスプラットフォームであることを保証するために、クロム専用input type="date"
の代わりにNPMモジュールmy-date-picker
を使用することを選択しました(私はこれについてのガイドがない理由を知るまで、長い時間を捜す必要がありました)。DateフィーチャーとAngular with my-date-pickerの使用方法
考えられるのは、projectInstalldate
という値を設定して、それを私の "add"関数で使って、それを明示的に渡すことです。私が抱えている問題は、Dateプロパティです。私が何を試みても、私は彼らに適切にアクセスできないようです。うまくいけば、私のコードは、私がやろうとしていますかを説明します:
projects.component.ts
//imports are here
import { IMyDpOptions } from 'mydatepicker';
@Component({
selector: 'app-project',
templateUrl: '../views/projects.component.html',
styleUrls: [ '../styles/projects.component.css' ]
})
export class ProjectsComp implements OnInit {
//unrelated code
//date: Date here?
public myDatePickerOptions: IMyDpOptions = {
editableDateField: false,
openSelectorOnInputClick: true,
dateFormat: 'dd mmm yyyy'
};
constructor(
private projectsService: ProjectsService
) {
//unrelated code
}
//Datepicker function
upDate(installDate: any) {
this.date = installDate;
this.newDate = this.date.toLocaleDateString();
}
add(
install_date: any
): void {
this.projectsService.create(
install_date
).subscribe(project => {
//unrelated code
});
}
projects.component.html
<h4>Date Templated: </h4>
<my-date-picker [options]="myDatePickerOptions"
[(ngModel)]="installDate"
(inputFieldChanged)="upDate(installDate);"
></my-date-picker>
{{ newDate }}
<input class="hidden" #projectInstalldate />
<button class="projectButton" (click)="
add(
<!-- other field values here -->
projectInstalldate.value
);
">
Create</button>
アイデアはmy-date-picker
から値を取得することですモジュールを開き、upDate()
を使用してstring
になります。 newDate
の値を表示します - 現時点では{{ newDate }}
の中に表示されるはずですので、入力フィールドの値を設定する前に動作していることがわかります。
このように設定されている理由は、ここに30以上のフィールドがあり、フォームに変更したくないためです。my-date-picker
のようなものです。私はw3の学校Javacriptを使ってみました日付参考:
var date = new Date();
var newDate = date.toLocaleDateString();
しかし、これは現在の時刻にnewDateを設定するだけです。私はmy-date-picker
の[(ngModel)]
からinstallDate
を使用しようとすると[object Object]を取得します。これを行うには本当に簡単にする必要がありますが、私が見つけることができるものは絶対に何も役立っていません。文字列を日付に変換するための結果はたくさんありますが、それ以外の方法はありません。あなたは私がdate.toLocaleDateString()
を使用しようとしているが、それを実装しようとしたあらゆる方法が失敗した - 私はインスタンスでエラーを取得し、this.date.etc.
と接頭辞をつけて、プロパティを言う別のエラーを取得する必要がありますtoLocaleDateString
は存在しませんタイプdate
です。
私の知恵はここで終わり、本当に感謝します。