2017-08-05 10 views
0

これは私の角度コードです。angularjsのコントローラで1 argを変更できませんか?

angular.module("app", []).controller("ctrl", function($scope){ 
    $scope.name = "Name"; 
}); 

しかし、私が作業していないパラメタを編集したとき。

angular.module("app", []).controller("ctrl", function($para){ 
    $para.name = "Name"; 
}); 
それを動作させる方法

と私たちは、他の機能でこれを使用することはできませんか?

答えて

0

Angularは、指定されたパラメータ名に基づいて依存性注入を使用します。それは$paraを知らないので、注入されません。ただし、配列の表記法を使用して、注入するサービスの名前を明示的に指定することができます。あなたはjavascriptのコードを最小化する場合、角度は依然としてなど、あなたの変数がaに名称​​変更を取得するとき注入するかを知っているbように、配列表記は、も必要である:

angular.module("app", []).controller("ctrl", ["$scope", function($para){ 
    // $para is the $scope object 
    $para.name = "Name"; 
}]); 

あなた$paraがサービスである場合は、登録する必要がありますそれは角度が何を注入すべきかを知るようにする:

angular.module("app", []) 
    .service("$para", function() { 
     // 
    }) 
    .controller("ctrl", function($para){ 
     $para.name = "Name"; 
    }); 
0

'$スコープ' をお読みくださいはAngularJSで特別なサービスです。しかし、あなた自身のサービス '$ para'を作成し、必要に応じて注入することができます。

チェックthis

また、 '$ scope'を使用しない場合は、代わりの 'controller as'構文を使用できます。 について読むhere

関連する問題