我想在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
作爲一個sidenode,你的代碼看起來有點搞砸了,試試John Pappa的styleguide: https://github.com/johnpapa/angular-styleguide/tree/master/a1 – Baki