app.contronller('xxx', ['$scope', 'service', function($scope, service) {
$scope.xxx = 'xxxx';
service.say($scope);
}]);
app.service('xxx', [function() {
this.say = function($scope) {
}
}]);
Terdapat banyak situasi sedemikian dalam kod yang dikekalkan. Adakah ini penggunaan yang salah? Rasanya bagus untuk digunakan, tetapi kodnya sangat mengelirukan
Ini jelas merupakan pendekatan malas, yang menjadikan maksud kaedah perkhidmatan sangat kabur Jika anda memasukkan $scope ke dalamnya, parameter yang digunakan sebenarnya tidak akan jelas.
Dan ia menyebabkan kaedah perkhidmatan mempunyai pergantungan yang tidak perlu pada $scope.
Tegasnya, nilai status bukan global tidak boleh diproses dalam perkhidmatan, terutamanya pengubahsuaian. Ini ialah $scope. Dalam erti kata lain, perkhidmatan di sini adalah serupa dengan antara muka Senarai parameter fungsi harus jelas, bukannya parameter umum.
Seperti
Sudah tentu, pembolehubah global seperti $location dan $rootScope boleh digunakan kerana ia tidak perlu melalui komponen lain.
Pergi ke blog saya dan hantarkannya sebagai parameter panggil balik
Malah, apabila saya menguji, saya mendapati bahawa jika anda mengembalikan nilai dalam perkhidmatan kepada $scope dalam pengawal, penutupan nampaknya tidak mempunyai kesan Namun, lulus $scope in akan mengemas kini secara langsung $scope dalam pengawal dalam perkhidmatan ini sangat mudah digunakan