質問するログイン新規登録

回答編集履歴

1

コードの追加

2016/08/28 01:19

投稿

nnssn
nnssn

スコア1221

answer CHANGED
@@ -1,3 +1,58 @@
1
+ ### 追記
2
+ 値はHTMLに置き不変という前提で、コンポーネント利用で書いたデモです。
3
+ プロパティvalを同期させて、コンポーネントのvalを変更すると親のvalも
4
+ 変更されるようになっています。
5
+
6
+ デモ
7
+ [https://jsfiddle.net/3f52z5bn/](https://jsfiddle.net/3f52z5bn/)
8
+
9
+ ```html
10
+ <div id="app">
11
+ <sample :v=10 :val.sync=val></sample>
12
+ <sample :v=200 :val.sync=val></sample>
13
+ <button @click="getVal">val:{{val}}</button>
14
+ </div>
15
+
16
+ <script type="x/template" id="sample-template">
17
+ <div class="wrap">
18
+ <button @click="select">{{v}}</button>
19
+ </div>
20
+ </script>
21
+
22
+ ```
23
+
24
+ ```javascript
25
+ Vue.component("sample", {
26
+ template: "#sample-template",
27
+ props: ["v", "val"],
28
+ data: function() {
29
+ return {
30
+ v: 0,
31
+ val: 0
32
+ };
33
+ },
34
+ methods: {
35
+ select: function() {
36
+ this.val = this.v;
37
+ }
38
+ }
39
+ });
40
+
41
+ new Vue({
42
+ el: "#app",
43
+ data: {
44
+ val: 0
45
+ },
46
+ methods: {
47
+ getVal: function() {
48
+ alert(this.val);
49
+ }
50
+ }
51
+ });
52
+ ```
53
+
54
+ ### 最初の回答
55
+
1
56
  HTML側に記述される値は固定とのことなので、vueでバインディングしないで
2
57
  素のJavaScriptで取得したほうがシンプルかもしれませんね。
3
58