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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

1回答

358閲覧

AngularJS controller間の情報取得方法について

werui-782

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2018/01/29 02:25

前提・実現したいこと

メインページから呼び出されるダイアログからの情報を取得したい。
または、メインページからの情報をダイアログで取得したい。

詳細情報

AngularJSとtypeScriptを使用し、管理コンソールの開発をしています。
現在下記機能の作成をしています。

1. DBから取得したユーザをメインページにテーブルで表示
2. テーブルからユーザーを選択、ユーザIDを取得し、論理削除を行う
3. 削除を行う前に確認ダイアログを表示して削除を行う。

1と2は完了しており、ダイアログを用いない場合は削除はできています。
現状、3は実装できておりません。
下記に簡易的にファイル構造を記載致します。

ファイル構造

index.html : ユーザ情報をdataTableで表示し、選択が可能
index.controlle.js : 上記ページのコントローラ
user.delte.dialog.html : 指定デザインの削除確認ダイアログ
user.delete.dialog.controller.js : 上記ダイアログのコントローラ

解決案

user.controlle.jsではindex.htmlで選択した削除対象のユーザIDは取得できており、
user.controlle.jsにある削除メソッドが実行できています。

解決方法に2つの方法があると考えています。
1. 削除ダイアログの削除結果をuser.controlle.jsの削除メソッドへ送り、削除する
2. user.delete.dialog.controller.jsに削除メソッドを記述し、index.htmlで選択した削除対象のユーザIDを送り、削除する。

試したこと

上記の解決案2を行おうと考えました。
user.delete.dialog.controller.jsに削除メソッドを記述し、ユーザIDを固定で実行したところ、
削除が確認されました。

至らぬところがあると思いますが、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

AngularJSのベストプラクティスがどうなのかは存じ上げませんが、Controller間のデータの受け渡しについて私は別途データ受け渡し用のServiceを作成し、そこに画面間で共有すべきデータを設定しています。

index.html : ユーザ情報をdataTableで表示し、選択が可能
index.controlle.js : 上記ページのコントローラ
user.delte.dialog.html : 指定デザインの削除確認ダイアログ
user.delete.dialog.controller.js : 上記ダイアログのコントローラ
index.global.service.js : データ共有サービス

というようなServiceを作成し、各Controllerに依存性注入して利用すれば、データの受け渡しは簡便です。
具体的には、index.controlle.jsでダイアログを呼び出す前に保持しているユーザIDをindex.global.service.jsの任意の変数に設定し、user.delete.dialog.controller.jsの生成時にその値を取得すればOKです。

Controllerはページの読み出し毎に生成されますが、Serviceはシングルトンであり最初に生成されたものを使い続けますので、グローバル変数的な利用ができます。

投稿2018/01/31 06:05

akabee

総合スコア1947

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問