2017-04-20 10 views
0

私は私のアプリ全体をリファクタリングしています。今はジョンパパのスタイルガイドに従っています。

(function(){ 
    'use strict'; 

    angular 
    .module('app.tutorial') 
    .controller('TutorialCtrl', TutorialCtrl); 

    TutorialCtrl.$inject = ['$scope', '$state', '$ionicSlideBoxDelegate', '$ionicSideMenuDelegate']; 

    function TutorialCtrl() { 
     //do stuff here 
    } 

に(匿名関数を使用して)

.controller('TutorialCtrl', function($scope, $state, $ionicSlideBoxDelegate, $ionicSideMenuDelegate) { 

    $ionicSideMenuDelegate.canDragContent(false); 

} 


そして、私はそれを動作させるためにどのように見ることができない。
基本的に私のコントローラから行ってきました。私は$ ionicSideMenuDelegateを使用するために匿名宣言関数を使用していましたが、今はそれを実現する関数を宣言しなければならないと思います。イム場合は移動するための方法のthatsわからない、私が試したときので:

angular.controller('TutorialCtrl', TutorialCtrl); 

    TutorialCtrl.$inject = [ 
     '$scope', 
     '$state', 
     '$ionicSlideBoxDelegate', 
     '$ionicSideMenuDelegate' 
    ]; 
    $scope.$on('$ionicView.enter', function() { 
     $ionicSideMenuDelegate.canDragContent(false); 
    }); 

それは$を言う:

angular.controller('TutorialCtrl', TutorialCtrl); 

TutorialCtrl.$inject = ['$state', '$ionicSlideBoxDelegate', '$ionicSideMenuDelegate']; 

function TutorialCtrl($ionicSideMenuDelegate) { 
     $ionicSideMenuDelegate.canDragContent(false); 
} 

をそれは「$ ionicSideMenuDelegate.canDragContentは関数ではありません」、と私はしようとすると言いますスコープは定義されていません。私はちょっと失われてこれを苦労しています...どんな助けもありがとう!あまりにも難しくはありませんが、私は理解できません。私はこれが十分明確であることを望む!

答えて

1

$injectを使用して依存関係を挿入する場合、関数パラメータと同じ順序で同じ依存関係を渡す必要があります。だから、次のことがうまくいくはずです!

angular.controller('TutorialCtrl', TutorialCtrl); 

TutorialCtrl.$inject = ['$state', '$ionicSlideBoxDelegate', '$ionicSideMenuDelegate']; 

function TutorialCtrl($state, $ionicSlideBoxDelegate, $ionicSideMenuDelegate) { 
     $ionicSideMenuDelegate.canDragContent(false); 
} 
+0

私はそれについて完全に忘れてしまった!ありがとうございました! :) – DevMoutarde

+0

@DevMoutarde問題はありません。この種の間違いはいつも起こります:)喜んで助けました。 upvoteとタイマーが消えると一度受け入れる – tanmay

+0

確かに、私は許可されたときに行います! :D – DevMoutarde

関連する問題