メンテナンスされているコードにはそのような状況がたくさんありますが、これは間違った使用法でしょうか?使用感は素晴らしいですが、コードが非常にわかりにくい
ringa_lee2017-05-15 16:52:23
これは明らかに怠惰なアプローチであり、サービス メソッドに $scope を渡すと、その意味が非常に曖昧になり、どのパラメータが実際に使用されるかがまったく不明になります。
また、サービス メソッドが $scope に不必要に依存することになります。
黄舟2017-05-15 16:52:23
厳密に言えば、非グローバルステータス値、特に変更はサービス内で処理されるべきではありません。これは $scope です。言い換えれば、ここでのサービスはインターフェイスに似ており、関数のパラメーター リストは一般的なパラメーターではなく明確である必要があります。
もちろん、$location や $rootScope などのグローバル変数は、他のコンポーネントを経由する必要がなく、インジェクションによって取得できるため使用できます。
高洛峰2017-05-15 16:52:23
実際にテストしたところ、サービスの値をコントローラーの $scope に返すと、クロージャが機能しないようですが、$scope を直接渡すと $scope が更新されます。サービス内のコントローラー、このようにとても便利です