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

質問編集履歴

2

修正

2016/04/14 06:07

投稿

DaisukeSakai
DaisukeSakai

スコア50

title CHANGED
File without changes
body CHANGED
@@ -45,6 +45,7 @@
45
45
  app.factory('DataStore', ($scope, $timeout, $resource, $window) => {
46
46
  return new DataStore($scope, $timeout, $resource, $window);
47
47
  }
48
+ ```
48
49
  と変えてみたのですが、同じくエラー。
49
50
 
50
51
  追記
@@ -75,6 +76,6 @@
75
76
  初心者ですみません。
76
77
 
77
78
  どなたかご説明お願いします。
78
- ```
79
+
79
80
  ###補足情報(言語/FW/ツール等のバージョンなど)
80
81
  angular.jsのバージョンは1.5です。

1

追記

2016/04/14 06:07

投稿

DaisukeSakai
DaisukeSakai

スコア50

title CHANGED
File without changes
body CHANGED
@@ -46,6 +46,35 @@
46
46
  return new DataStore($scope, $timeout, $resource, $window);
47
47
  }
48
48
  と変えてみたのですが、同じくエラー。
49
+
50
+ 追記
51
+ こんな感じで試してみました。
52
+ main.js
53
+ ```javascript
54
+ class DataStore {
55
+ constructor($timeout, $resource, $window) {
56
+ this.$resource = $resource(url);
57
+ this.store = null;
58
+ this.message = null;
59
+
60
+ DataStore.$inject = ['$timeout', '$resource', '$window'];
61
+ }
62
+ init() {...}
63
+ saved() {...}
64
+ }
65
+
66
+ var app = angular('MyApp', ['ngResource']);
67
+ app.service('DataStore', DataStore);
68
+ app.controller('myCtrl', function(DataStore) {
69
+ this.service = DataStore;
70
+ }
49
71
  ```
72
+ $scopeをconstructorから外したところ、コードは問題なく動作しました。
73
+ ...serviceを登録する際に、$scopeは利用できないんでしょうか。$timeout等のangular.jsから提供されているサービスという認識でしたので渡せるとおもったのですが。
74
+ クラスを外部で定義して$watch等を組み込みたい場合は、どうすれば?
75
+ 初心者ですみません。
76
+
77
+ どなたかご説明お願いします。
78
+ ```
50
79
  ###補足情報(言語/FW/ツール等のバージョンなど)
51
80
  angular.jsのバージョンは1.5です。