angular.js - angular 将$scope传入service
我想大声告诉你
我想大声告诉你 2017-05-15 16:50:23
0
4
678
app.contronller('xxx', ['$scope', 'service', function($scope, service) {
    $scope.xxx = 'xxxx';

    service.say($scope);
}]);

app.service('xxx', [function() {
    this.say = function($scope) {
    }
}]);

现在维护的代码里好多这样的情形,这是不是错误的用法?感觉用起来很爽,但是代码好混乱

我想大声告诉你
我想大声告诉你

全員に返信(4)
左手右手慢动作

これは明らかに怠惰なアプローチであり、サービス メソッドに $scope を渡すと、その意味が非常に曖昧になり、どのパラメータが実際に使用されるかがまったく不明になります。
また、サービス メソッドが $scope に不必要に依存することになります。

いいねを押す +0
黄舟

厳密に言えば、非グローバルステータス値、特に変更はサービス内で処理されるべきではありません。これは $scope です。言い換えれば、ここでのサービスはインターフェイスに似ており、関数のパラメーター リストは一般的なパラメーターではなく明確である必要があります。

など リーリー

もちろん、$location や $rootScope などのグローバル変数は、他のコンポーネントを経由する必要がなく、インジェクションによって取得できるため使用できます。

いいねを押す +0
某草草

私のブログにアクセスしてコールバックパラメータとして渡します

いいねを押す +0
小葫芦

実際にテストしたところ、サービスの値をコントローラーの $scope に返すと、クロージャが機能しないようですが、$scope を直接渡すと $scope が更新されます。サービス内のコントローラー、このようにとても便利です

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート