質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

解決済

1回答

1738閲覧

angularjs controller 依存性注入

coko1

総合スコア276

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2017/05/19 05:03

編集2017/05/19 06:05

お世話になります。
.controller('myController', function($scope) {}のfunction内の処理を関数actionの実行後に走らせるような処理を作っているのですが、関数action後に呼び出されたfunction内では$scopeがundefinedとなってしまいました。
どのようにすれば、関数action実行後に.controllerのfunction内の処理を流せるのでしょうか?

どなたか知恵を貸してくださると大変助かります。
下記のものとは全く違ったアプローチの仕方でも、実現させる方法があれば教えていただけると嬉しいです。

javascript

1 2var app = angular.module('myApp'); 3app.controller = function(){ 4 var prm1 = arguments[0] //コントローラ名 5 var prm2 = function(){ 6 action(param... ,arguments[1]); 7 } 8 app.controller.apply(this, [prm1, prm2]); 9 return app; 10} 11 12app.controller('myController', function($scope) { 13 $scope.msg = 'Hello, AngularJS!'; 14 });

javascript

1function action(param... ,calback){ 2 //処理 3456 7 if(typeof callback === 'function') callback(); 8}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$scopeがundefined ってのは、以下処理で、って事ですよね?

app.controller('myController', function($scope) { $scope.msg = 'Hello, AngularJS!'; });

AngularJSのControllerとScopeの基礎を学ぼう

単純に、

app.controller('myController', ['$scope', function($scope) { $scope.msg = 'Hello, AngularJS!'; }]);

に置き換えれば、$scopeが定義される、とかそういう話では無くてでしょうか?

投稿2017/05/19 06:38

Ikkitang

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2017/05/19 07:08 編集

残念ながらそういうことではないですね... 上記のソースのarguments[1]にfunction($scope)が入っているのですが、$scopeがオブジェクトとしてではなくて引数$scopeとして渡されるために関数actionのcallbackで呼び出しても$scopeという名前の引数として扱われてしまうのを改善したいのです。
Ikkitang

2017/05/19 07:52 編集

なるほど。 失礼致しました。 そもそも、 argument[1] が function ($scope) { $scope.msg = 'Hello, AngularJS!'; } となっていて、 argument[1] を呼び出した時に、$scope がundefined になるから、どうにかしたい、って認識で間違って無いですかね? ちなみにどんな事をされたいのでしょう。 service とかを別に定義するとかでは出来ない事なんですか?
coko1

2017/05/19 08:21 編集

間違いないです。 function ($scope) { $scope.msg = 'Hello, AngularJS!'; } のfunction内の処理を流す前に非同期の処理を行ないたいのです。
Ikkitang

2017/05/19 09:17

ビューのレンダリングが始まる前に特定の処理を完了させたいとき http://qiita.com/konpyu/items/be726b18e43d9e69dfb8 こんな記事が見つかりました。 恐らく要件に沿っているのでは無いかな、と思いますが、如何でしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問