app.contronller('xxx', ['$scope', 'service', function($scope, service) { $scope.xxx = 'xxxx'; service.say($scope); }]); app.service('xxx', [function() { this.say = function($scope) { } }]);
现在维护的代码里好多这样的情形,这是不是错误的用法?感觉用起来很爽,但是代码好混乱
これは明らかに怠惰なアプローチであり、サービス メソッドに $scope を渡すと、その意味が非常に曖昧になり、どのパラメータが実際に使用されるかがまったく不明になります。 また、サービス メソッドが $scope に不必要に依存することになります。
厳密に言えば、非グローバルステータス値、特に変更はサービス内で処理されるべきではありません。これは $scope です。言い換えれば、ここでのサービスはインターフェイスに似ており、関数のパラメーター リストは一般的なパラメーターではなく明確である必要があります。
もちろん、$location や $rootScope などのグローバル変数は、他のコンポーネントを経由する必要がなく、インジェクションによって取得できるため使用できます。
私のブログにアクセスしてコールバックパラメータとして渡します
実際にテストしたところ、サービスの値をコントローラーの $scope に返すと、クロージャが機能しないようですが、$scope を直接渡すと $scope が更新されます。サービス内のコントローラー、このようにとても便利です
これは明らかに怠惰なアプローチであり、サービス メソッドに $scope を渡すと、その意味が非常に曖昧になり、どのパラメータが実際に使用されるかがまったく不明になります。
また、サービス メソッドが $scope に不必要に依存することになります。
厳密に言えば、非グローバルステータス値、特に変更はサービス内で処理されるべきではありません。これは $scope です。言い換えれば、ここでのサービスはインターフェイスに似ており、関数のパラメーター リストは一般的なパラメーターではなく明確である必要があります。
など リーリーもちろん、$location や $rootScope などのグローバル変数は、他のコンポーネントを経由する必要がなく、インジェクションによって取得できるため使用できます。
私のブログにアクセスしてコールバックパラメータとして渡します
実際にテストしたところ、サービスの値をコントローラーの $scope に返すと、クロージャが機能しないようですが、$scope を直接渡すと $scope が更新されます。サービス内のコントローラー、このようにとても便利です