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

回答編集履歴

2

サンプル追加

2018/04/19 16:43

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -43,6 +43,9 @@
43
43
 
44
44
  ```
45
45
 
46
+ 簡単なサンプル [https://jsfiddle.net/euledge/ev9sn0eg/](https://jsfiddle.net/euledge/ev9sn0eg/)
47
+
48
+ thisについての説明記事
46
49
  [JavaScript の this を理解する多分一番分かりやすい説明](https://qiita.com/takkyun/items/c6e2f2cf25327299cf03)
47
50
 
48
51
  また、直接質問とは関係ないですがvueJSの開発をされるときは chrome,firefoxのアドオンで `Vue.js Devtools`というものがありますので使ってみると良いと思います。

1

回答の誤りの訂正

2018/04/19 16:43

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -21,4 +21,30 @@
21
21
  }
22
22
  }
23
23
  });
24
- ```
24
+ ```
25
+
26
+ ## 追記(訂正)
27
+ 上記の記載でaxiosで戻ってきた`then`でajaxから受け取ったデータを
28
+ `this.available_teachers = res.data.available_teachers;`
29
+ このように記載するように回答しましたが、
30
+ ここでの`this`は`function(res){}`を指してしまいますね。
31
+ **javascriptのはまりポイント**です。
32
+ このようなときはthisを一旦別の変数`下記の例ではself`に退避して使うのが定石です。
33
+ javascriptの新しい仕様 `ES2015`ではアロー関数という書き方で解決できますがこちらはまた調べてみてください。
34
+
35
+ ```
36
+ var self = this;
37
+ this.$http.post('/ajax/reservation_calender/change_date', data)
38
+ .then(function(res){
39
+ self.available_teachers = res.data.available_teachers;
40
+ }).catch(function(error){
41
+ alert('送信が失敗しました。');//テストのため
42
+ });
43
+
44
+ ```
45
+
46
+ [JavaScript の this を理解する多分一番分かりやすい説明](https://qiita.com/takkyun/items/c6e2f2cf25327299cf03)
47
+
48
+ また、直接質問とは関係ないですがvueJSの開発をされるときは chrome,firefoxのアドオンで `Vue.js Devtools`というものがありますので使ってみると良いと思います。
49
+ vueの data{}の中の変数の値を見たり、設定したりできます。私も今手放せないツールの一つです。
50
+ [Vue.js Devtoolsの導入方法と機能まとめ。Vue.jsを用いた開発を効率化させよう!](https://qiita.com/hashimoto-1202/items/c81f5d4c271eef16d957)