2016-10-18 15 views
0

私はちょうど角度jを始めました。サービスと工場のないモジュールの基本的な宣言から始めました。サービスと工場を追加する前にうまくいっていました。サービスと工場を追加した後、もう機能していない。は依存関係がありません

もはや機能していない最初の宣言:

angular.module('root',[]) 
.controller("index",["$scope",function ($scope){ 
    $scope.message="My name"; 
    $scope.favouriteWord; 
    $scope.favouriteColor; 
    $scope.favouriteShape; 
    $scope.value = 1; 
    $scope.isBold = function() { 
     return ($scope.value % 2===0); 
    } 

    $scope.isUnderlined = function() { 
     return ($scope.value % 5===0); 
    } 

    $scope.products=[ 
       {id: 1, name:"House Jockey"}, 
       {id: 2, name:"Golf club"}, 
       {id: 3, name:"Baseball Bat"}, 
       {id: 4, name:"Lacrosse stick"}]; 
    $scope.favsha = true; 
    $scope.factor = 6; 
    $scope.product = $scope.factor * 2; 
}]); 

工場が追加さ:

angular.module('root',["services"]) 
.controller("index",["$scope","square",function ($scope,square){ 
    $scope.product=square; 
}]); 

サービスが追加:

angular.module('root',["services"]) 
.controller("index",["$scope","message",function ($scope,message){ 
     $scope.message=message; 
}]); 
+0

あなたはアプリに追加した '[" "services"] '依存関係は何ですか? –

+0

サービスと呼ばれるモジュール – athene

+0

どこですか? 「サービス」と呼ばれるモジュールを定義しましたか? –

答えて

0

あなたはモジュールのルート」を再宣言されています新しいモジュール 'services'を追加するのではなく、あなたが再び依存関係に 'services'を追加したからです。新しいモジュールでは、スタンドアロンで移植可能でなければならないため、「ルート」を再宣言する必要はありません。 https://docs.angularjs.org/guide/module

あなたの「サービス」モジュールは、このように宣言する必要があります:

angular.module('services']) 
.controller("index",["$scope","message",function ($scope,message){ 
$scope.message=message; 
}]); 
+0

私は私のサービスと工場の両方がうまく働いていると言いました、唯一の問題はサービスや工場のないものです – athene

+0

申し訳ありませんが、私は間違っています。あなたはメッセージとスクエアのコードを表示していただけますか? –

0

あなたはangular.module機能の重要な部分が欠落しているモジュールのドキュメントをチェックしてください。

この関数は、指定された引数に応じて、ゲッターとセッターとして機能します。 [...]依存関係の配列です

angular.module('module name', [...])

は、「セッター」であるので、モジュールを作成します。

これを作成した後、モジュールを取得してコントローラ、サービスなどを追加するには、依存関係配列を省略します。

angular.module('module name')

また、あなたはあなたのrootモジュールの前servicesモジュールを定義する必要があります。 angularJSで

// Define 'services' module 
angular.module('services', []); 

// Adds factory to 'services' module 
angular.module('services').factory('factoryName', function() { 
    // Implement factory... 
}); 

// Define 'root' module 
angular.module('root', ['services']); 

// Adds controller to 'root' module 
angular.module('root').controller('controllerName', ['$scope', 'factoryName', function($scope, factoryName) { 
    // Implement controller... 
}]); 
0

サービスや工場は、上記のいずれか

サービス工場を直接

angular.module('root',[]) 
.controller("index",["$scope","service",function ($scope,service){ 

コントローラに注入されている間違っているモジュール

angular.module('root',["services"]) 

から注入することができません問題が解決しない場合は、サービス/工場コードを投稿してください。問題に。