Я хотел бы создать сервис и контроллер в AngualrJS. Проблема в том, что мне нужно получить доступ к $ scope в моем сервисе. Я думаю, что хорошим решением является прямое подключение этой службы к контроллеру, но я не знаю, как это сделать. Это мой HTML:Неизвестный поставщик с AngularJS
<div ng-controller="myController">
<input type="text" id="idInput" name="idInput" ng-model="nameModel">
<button class="btn btn-default" ng-click="functionWhenClick()">Execute</button>
</div>
Это мой контроллер:
var variableModuleName = angular.module("nameModule",[]);
variableModuleName.controller('controllerName',function($rootScope,$scope, CommonService) {
$scope.nameModel = '';
$scope.scopeFunctionName = function() {
CommonService.myFunction($scope.nameModel);
};
});
Это моя служба:
variableModuleName.service('CommonService', ['dataService', function(dataService) {
this.loadData = function(param) {
dataService.getCommitData(param).then(function(res) {
if (res.error) {
$scope.chartData = res.chartData;
}
});
};
this.myFunction = function(concatURL){
this.loadData('URL' + concatURL);
}
}]);
Я надеюсь, что вы можете мне помочь. Спасибо.
Преимущество службы заключается в том, что вы можете обмениваться своим сервисом с любым контроллером, так как в течение этого времени служба вводится в этот контроллер. вместо использования $ scope.charData, попробуйте определить this.charData = ''; – mtamma
Как сиднейд, ваш код выглядит немного испорченным, попробуйте стильный стиль Джона Паппы: https://github.com/johnpapa/angular-styleguide/tree/master/a1 – Baki