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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

1回答

1283閲覧

vue.js dialog

syoyu

総合スコア13

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2018/03/12 13:47

vue.jsで予定管理アプリを制作しています。予定をタイトルのみで並べ、そのタイトルをクリックすると予定の詳細がdialogとして表示されるようにしたいと思い、http://element.eleme.io/#/en-US/component/dialogのelementのdialog basic usageを利用としようとしています。
イメージ説明
画像のようにdialogをクリックすると一旦画面が暗くなりもう一度画面をクリックすると明るくなります。どうしてでしょうか?
また、dialogのtitleの部分を予定の配列event.titleにしたいのですが、titleの属性がstringであるためか、どう記述しても入力したものがそのままtitleとなってしまいます。どうすればよいでしょうか。
5行目でon clickされたときにtitleにevent.titleを入れて、9行目でtitle="title"でいけないかと思いましたがいけませんでした。プログラミング初心者なのでわからないことは多いですが、よければ教えていただけると幸いです。

calendar.vue

<template> <vue-event-calendar :events="events"> <template scope="props"> <el-button v-for="(event, index) in props.showEvents" @click="dialogVisible = true,title = event.title"> {{event.title}}</el-button> <el-dialog title="title" :visible.sync="dialogVisible" width="80%"> <span>This is a message</span> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">Close</el-button> <el-button type="primary" @click="dialogVisible = false">Edit</el-button> </span> </el-dialog> </template> </vue-event-calendar> </template> <script> import Vue from 'vue' import 'vue-event-calendar/dist/style.css' import vueEventCalendar from 'vue-event-calendar' import { mapState ,mapGetters ,mapMutations} from 'vuex' export default { data(){ return{ dialogVisible: false, title:'' }; }, computed:{ ...mapState(['events']), }, } Vue.use(vueEventCalendar, {locale: 'en'}) </script>

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

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

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

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

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

guest

回答1

0

titleの方は変数が渡ってないのを直せば直るでしょう

<el-dialog :title="title"

暗くなるのはダイアログの背景が、なぜかダイアログのコンテンツまで隠してしまっているような気がします。
ダイアログの位置をずらしてみるとどうでしょう?

<template> <div> <vue-event-calendar :events="events"> <template scope="props"> <el-button v-for="(event, index) in props.showEvents" @click="dialogVisible = true,title = event.title"> {{event.title}}</el-button> </template> </vue-event-calendar> <el-dialog title="title" :visible.sync="dialogVisible" width="80%"> <span>This is a message</span> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">Close</el-button> <el-button type="primary" @click="dialogVisible = false">Edit</el-button> </span> </el-dialog> </div> </template>

投稿2018/03/12 15:48

sakapun

総合スコア888

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

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

syoyu

2018/03/13 16:21

回答ありがとうございます。titleについては提示していただいた方法で解決いたしました。ありがとうございます。 画面が暗くなることについては<el-dialog>を<vue-event-calendar>の外に出してみましたが改善できませんでした。その他考えられる理由はないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問