function MyComponent() {
this._bindedValue = 'someValue';
}
MyComponent.prototype.getBindedValue = function() {
return this._bindedValue;
}
MyComponent.prototype.setBindedValue = function(value) {
this._bindedValue = value;
this.makeSomethingWithNewValue();
}
var MyComponent() {
_bindedValue: 'someValue',
get bindedValue() {
return this._bindedValue;
}
set bindedValue(value) {
this._bindedValue = value;
this.makeSomethingWithNewValue();
}
}
// пример роутов, использую ui-router
$stateProvider.state('admin', {
template: '...', // содержит <div ui-view></div> для вывода потомков, например роута home
})
$stateProvider.state('home', {
parent: 'admin',
template: '...',
controller: '...'
})
// Пример как выглядит angular тема INSPINIA
export default angular.module('inspinia', [ ])
.directive('...', ...)
...
.name;
export default class StorageService {
constructor($rootScope) {
'ngInject';
this.$rootScope = $rootScope;
this._model = {};
}
getModel() {
return this._model;
}
setModel(newModel) {
this._model = newModel;
// вызываем событие Сервис изменился, при каждом изменении модели
this.$rootScope.$broadcast('storageServiceChange');
}
loadFromFile(fileName) {
fs.readFile(fileName, 'utf-8', (err, data) => {
let newModel = JSON.parse(data);
this.setModel(newModel);
});
}
}
class AppController {
constructor($rootScope, $scope, storageService) {
'ngInject';
this.storage = storageService;
this.$rootScope = $rootScope;
this.$scope = $scope;
this.model = {};
}
$onInit() {
this.storage.loadFromFile('storage.txt');
// подписываемся на событие Сервис изменился, и обновляем модель
this.$rootScope.$on('storageServiceChange', () => {
this.model = this.storage.getModel();
})
}
}
mailApp.directive('mailList', function(){
return {
restrict: 'E',
templateUrl: 'mailListDirective.html',
controller: 'mailListCtrl',
// replace: true,
controllerAs: 'mailListCtrl'
};
});
responseError: function(rejection) {
...
if (tokenError) {
return Session.refreshToken().then(function() {
return $http(rejection.config); // Повторяем запрос, когда получили новый токен
});
}
return $q.reject(rejection);
}