質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

1759閲覧

Ion-selectのバインディング→tsファイルの内容をhtmlに表示する

Patrick.Walker

総合スコア1

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/10/02 11:33

前提・実現したいこと

Ion-selectで選択した項目をtsファイルにバインディングする。
tsファイルに登録された内容をhtmlファイルに表示する。

該当のソースコード

html

1<!--shinki.page.html--> 2 3<!--<ion-select>の選択項目--> 4 5<ion-content> 6 <form (submit)="register()"> 7  <ion-item> 8   <ion-label>カテゴリ</ion-label> 9   <ion-select okText="完了" cancelText="キャンセル" [(ngModel)]="category"> 10   <ion-select-option value="'main'">メイン</ion-select-option> 11   <ion-select-option value="'sub'">サブ</ion-select-option> 12   <ion-select-option value="'dring'">飲み物</ion-select-option> 13   <ion-select-option value="'dessert'">デザート</ion-select-option> 14   </ion-select> 15  </ion-item> 16 <ion-button expand="block" type="submit">登録</ion-button> 17 </form> 18 19 <!--登録されたselectの内容を表示したい--> 20 <ion-list> 21 <ion-item *ngFor="let o of obj"> 22 {{o.category}} 23 </ion-item> 24 </ion-list>

typescript

1//shinki.page.ts 2 3import { Component, OnInit } from '@angular/core'; 4 5@Component({ 6 selector: 'app-shinki', 7 templateUrl: './shinki.page.html', 8 styleUrls: ['./shinki.page.scss'], 9}) 10export class ShinkiPage implements OnInit { 11 12category:"main" | "sub" | "drink" | "dessert" 13 14obj : { 15 category: "main" | "sub" | "drink" | "dessert" 16 }[] = []; 17 18//htmlの登録ボタンが押されたらobjに格納したい 19 register(){ 20 this.obj.push({ 21 category: this.category 22 }) 23 24}

試したこと

超がつくほどの初心者です。また初投稿です。情報不足等ございましたら仰ってくださいませ。
初歩的な質問であること、承知しております。申し訳ございません。

<ion-select>で項目を選択したものをオブジェクトに格納し、htmlでその表示を返したいと考えています。

私個人としましては<ion-select>内の[(ngModel)]やvalueの使い方がよくないのだと感じておりますが、解決方法がわかりません。他にも文法的にめちゃくちゃになっている部分もあろうかと思います。
どなたかご教示いただけますと幸いです。
何卒宜しくお願い致します。

補足情報(FW/ツールのバージョンなど)

Ionic version 5.4.16

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

開発ツールをみてみると、 name を設定しろとでてませんでしょうか。 ion-selectname 属性を設定する必要があります。

例:

<ion-select okText="完了" cancelText="キャンセル" [(ngModel)]="category" name="category">

また、メソッド regisiter の実行時に this.category の値をみればいいのですが、「'main'」という状態で取得できると思います。

value="main" [value]="'main'"

のどちらかにしないといけないかなと思います。まずは開発ツールでエラーを確認する、次に期待する動作にならなかった時はconsole.logで値を表示することを徹底してみてくださいー。

投稿2021/10/02 13:12

rdlabo

総合スコア448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Patrick.Walker

2021/10/03 11:24

この度はご回答いただきありがとうございます。 ご指摘の通りに書き直したところ、イメージ通りの動作が確認できました。 本当にありがとうございます。 エラーメッセージにも読み慣れていけるように取り組んでみます。 また貴書「Ionicで作るモバイルアプリ入門」でも勉強させていただいています! 今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問