Я пытаюсь настроить видимость элемента на основе функции моего сервиса.
Есть ли способ сделать это без повторения функции внутри контроллера снова?
Услуги:
angular
.module('app')
.service('userService', userService);
userService.$inject = ['$window', '$rootScope', '$uibModalStack', '$state'];
function userService($window, $rootScope, $uibModalStack, $state) {
var service = this;
service.user = {};
service.returnTrue= function() {
return true;
};
};
HTML-код контроллера:
<div>
<p ng-if="userService.returnTrue()">Display if service's function returns true</p>
</div>
Я хочу избежать дублирования функции в моем контроллере, как это
angular
.module('app')
.controller('mainController', mainController);
mainController.$inject = ['userService'];
function mainController(userService) {
var vm = this;
vm.returnTrue = function() {
return userService.isInRole()
};
}
Вот фрагмент того, чего я избегаю
angular.module('app',[])
.service('userService', function(){
var service = this;
service.returnTrue = function() {
return true;
}
})
.controller('mainCtrl', function(userService){
var vm = this;
vm.disableSave = true
vm.returnTrue = function() {
return userService.returnTrue()
};
})
<html ng-app="app">
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="mainCtrl as vm">
<p ng-if="vm.returnTrue()">Display if value returned is true</p>
</div>
</body>
</html>