質問編集履歴

1

現象を追記しました。

2019/06/17 07:33

投稿

akarin
akarin

スコア22

test CHANGED
File without changes
test CHANGED
@@ -26,11 +26,31 @@
26
26
 
27
27
 
28
28
 
29
+ $scope.$on("change:msg", (evt, value) => {
30
+
31
+ console.log(value); // 動く
32
+
33
+ });
34
+
35
+
36
+
29
37
  this.greet = function() {
30
38
 
31
39
  msg = "hello world !";
32
40
 
33
41
  };
42
+
43
+ }]);
44
+
45
+
46
+
47
+ app.controller("myController", ["$scope", "appService", function ($scope) {
48
+
49
+ $scope.$on("change:msg", (evt, value) => {
50
+
51
+ console.log(value); // 動かない
52
+
53
+ });
34
54
 
35
55
  }]);
36
56
 
@@ -59,3 +79,13 @@
59
79
  `greet()`内で`$scope`が参照できるのも確認しました。
60
80
 
61
81
  `greet()`内で`$scope.$broadcast("change:msg", msg);`としても`$broadcast`も動作しませんでした。
82
+
83
+
84
+
85
+ 追記
86
+
87
+ サービス内で`$scope.$on`を利用すると動作しました。
88
+
89
+ 別のコントローラーで`$scope.$on`を利用すると動作しませんでした。
90
+
91
+ injectorから呼び出した際に$scopeがrootでないようですが、どうしたらrootに出来るのかが分かりません。