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

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

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

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

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Q&A

解決済

2回答

3371閲覧

[Onsen UI + Vue.js]v-ons-tabbarでtabにpropsを通じてデータを渡したい

i-terashima

総合スコア14

Vue.js

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

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

0グッド

0クリップ

投稿2017/06/07 11:47

編集2017/06/07 12:17

###前提・実現したいこと
公式ページにあった下記コマンドで環境を構築し、"props"の部分だけ追加で記述しています。
※見やすくするために一部のコードを削っています

$ monaca create helloworld # Choose Vue 2 template

該当部分のコードは下記で、親ページの「data内tabのprops」で定義した

test:"this is a test."

を、子タブへ渡して表示したいのですが、反映されません。
どこか間違っているのか、あるいは別の方法があればご教示頂きたいです。

###該当のソースコード(親ページ)

<template> <v-ons-page> <v-ons-toolbar> <div class="center">{{ title }}</div> </v-ons-toolbar> <v-ons-tabbar position="auto" :tabs="tabs" :visible="true" :index.sync="activeIndex"> </v-ons-tabbar> </v-ons-page> </template> <script> import settingsPage from 'Settings'; import homePage from 'Home'; export default { data() { return { activeIndex: 0, tabs: [ { icon: this.md() ? null : 'ion-home', label: 'Home', page: homePage, props:{ test:"this is a test." } }, { icon: this.md() ? null : 'ion-ios-bell', label: 'News', page: newsPage, badge: 7 }, ] }; }, methods: { md() { return this.$ons.platform.isAndroid(); } }, computed: { title() { return this.tabs[this.activeIndex].label; } }, components: { homePage, settingsPage, newsPage } } </script>

###該当のソースコード(子ページ)

<template> <v-ons-page> <p style="text-align: center"> testComment:{{test}} </p> </v-ons-page> </template> <script> export default { name: 'home', props: ['test'], } </script>

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

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

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

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

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

guest

回答2

0

Onsen UI 開発チームの者です。

この問題は先ほどリリースした vue-onsenui 2.0.0-rc.0 にて改善されました。
https://github.com/OnsenUI/OnsenUI/blob/master/bindings/vue/CHANGELOG.md#200-rc0

2.0.0-rc.0 以降は以下のような書き方が可能になります。

tabs: [ { label: 'Home', icon: 'ion-ios-home-outline', page: home, props: { test: 'This is a page prop.' }, }, { label: 'News', icon: 'ion-ios-bell', badge: 7, page: news }, { label: 'Settings', icon: 'fa-cogs', page: settings } ]

https://github.com/OnsenUI/OnsenUI/blob/398902325230da6aee49e7a44b27a60164a48db8/bindings/vue/examples/components/Tabbar.vue#L46-L66

よろしくお願いいたします。

投稿2017/06/14 13:44

asial-matagawa

総合スコア164

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

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

i-terashima

2017/06/14 14:54

上記、確認できました!ありがとうございます!
guest

0

自己解決

vuexを導入して解決
ただし、vuefireとの共存方法がよくわからないし、小規模なアプリだとコードが重たくなる・・・

投稿2017/06/08 22:07

i-terashima

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問