回答編集履歴
1
後半部加筆
test
CHANGED
@@ -146,17 +146,19 @@
|
|
146
146
|
|
147
147
|
|
148
148
|
|
149
|
-
AngularJS決め打ちで回答しますが、
|
149
|
+
AngularJSのバージョン1決め打ちで回答しますが、
|
150
150
|
|
151
151
|
この時のScopeは基本的にthisで使う事が前提です。
|
152
152
|
|
153
153
|
|
154
154
|
|
155
|
-
以下はテンプレートでバインドされた`title`を使う方法
|
155
|
+
以下はテンプレートでバインドされた`title`を使う方法です。
|
156
156
|
|
157
157
|
リンクをクリックするとAjax通信を行い、コールバック関数の中身から`this.title`を書き換えるテクニックのサンプルを用意しました。
|
158
158
|
|
159
|
+
この時無名関数という事でコールバック関数に作ったばかりの使い捨ての関数をあてがいますが、そのときにスコープが変わるので`this.title`にアクセス出来なくなります。
|
160
|
+
|
159
|
-
一度`self`に突っ込んで、別スコープにアクセスするテクニック
|
161
|
+
そこで下記のように一度`this`を`self`に突っ込んで、別スコープにアクセスするテクニックを覚えておくと捗ります。
|
160
162
|
|
161
163
|
|
162
164
|
|
@@ -184,7 +186,9 @@
|
|
184
186
|
|
185
187
|
$http.get("/title").success(function(results){
|
186
188
|
|
189
|
+
this.title = results.data; // NG、ここに突っ込んでもスコープが違うので上書きできない
|
190
|
+
|
187
|
-
self.title = results.data;
|
191
|
+
self.title = results.data; // OK
|
188
192
|
|
189
193
|
// $scope.title = results.data; // これでもOK
|
190
194
|
|