<div id="form-container">
<form ng-repeat="f in forms">
<input ng-model="f.title">
</form>
</div>
<input type="button" ng-click="submitForms('#form-container')">
function controller(){
var self = this;
self.submitForms = function(selector){
let formContainer = angular.element(selector);
let forms = formContainer.find('form');
// и проверяйте валидность форм
}
}
authService.checkApiRoles = function (authorizedRoles) {
var promise = $http({
url: "URL",
method: 'GET',
headers: {}
})
.then(function (response) {
var resultRole = response.data.result;
return resultRole;
});
return promise;
}
/**
* Роут "Личный кабинет""
*/
$stateProvider
.state({
name: 'user',
url: "/user",
templateUrl: "routes/user/user.html",
controller: 'userController as User',
resolve: {
authState: function (userFactory) {
return userFactory.ValidSession()
.then(function (result) {
return result;
});
}
}
})
// метод сервиса проверяющий валидность сессии на сервере
function ValidSession() {
var promise = $http({
url: API.makeUrl(API.URLS.user, "valid"),
method: 'GET',
params: {},
headers: {}
})
.then(function (response) {
$log.debug("ValidSession success: ", response.data);
var response_data = angular.fromJson(response.data);
return response_data.valid;
});
return promise;
}
// authState инжектится в контроллер
if (authState === true) {
$state.go('user.profile');
} else {
$state.go('login');
}
Текст очень нудной статьи, которая содержит <a href="/article/1">ссылку1</a> и <a href="/article/2">ссылку2</a>.
Текст очень нудной статьи, которая содержит <a ui-sref="article({id:1})">ссылку1</a> и <a ui-sref="article({id:2})">ссылку2</a>.
var app = angular.module('app',[]);
app.factory('serviceData', ['$http', function($http) {
var self = this;
self.loadData = function() {
var promise = $http({
url: 'mydata.json',
method: 'GET',
params: {},
headers: {}
})
.then(function (response) {
var response_data = angular.fromJson(response.data);
return response_data;
});
return promise;
};
return self;
}]);
app.controller('loadCtrl',['$scope', 'serviceData', function($scope, serviceData) {
// а здесь я хочу обработать info
serviceData.loadData()
.then(function (response_data) {
$scope.info = response_data;
});;
}]);
<!-- app scripts -->
<script src="app/app.js"></script>
<!-- services -->
<script src="app/components/auth/AuthService.js"></script>
<!-- controllers -->
<script src="app/components/home/HomeController.js"></script>
<script src="app/components/auth/LoginController.js"></script>
<script src="app/components/navigation/NavigationController.js"></script>
/*global angular*/
(function () {
'use strict';
angular
.module('App')
.factory('httpErrorResponceInterceptor', ['$q', '$injector', '$rootScope', '$log',
httpErrorResponceInterceptor]);
/**
* Интерсептор для перехвата ответов сервера, которые содержат ошибку.
* Реализует обработку ошибочных ответов сервера (http кодов).
* Реагирует только на коды 400, 401, 403, 404, и 500
*
* @name httpErrorResponceInterceptor
*/
function httpErrorResponceInterceptor($q, $injector, $rootScope, $log) {
var self = {};
self.responseError = function (response) {
if (response.status == 401){
return $q.reject(response);
}
else if (response.status == 400){
return $q.reject(response);
}
else if (response.status == 403) {
return $q.reject(response);
}
else if (response.status == 404) {
return $q.reject(response);
}
else if (response.status == 500) {
return $q.reject(response);
}
return $http(response.config);
};
return self;
}
})();
/**
* Принимаем токен авторизации Ulogin
*/
function getTokenFromULogin(token) {
$.getJSON("//ulogin.ru/token.php?host=" + encodeURIComponent(window.location.toString()) + "&token=" + token + "&callback=?", function (data) {
data = $.parseJSON(data.toString());
if (!data.error) {
// В <div ui-view="UserPage"></div> у меня загружается стэйт личного кабинета, поэтому получаем его scope
var UserCtrl = angular.element('[ui-view="UserPage"]').scope();
// UserCtrl.User - контроллер пользователя
// AddSocialAccount - метод, который дергает метод фабрики, в котором на сервер уходят данные пользователя от uLogin
UserCtrl.User.AddSocialAccount(data);
}
});
}
angular
.module('App')
.run(['$rootScope', 'authFactory', function ($rootScope, authFactory){
$rootScope.isAuth = function () {
return authFactory.SessionState(); // в методе проверяем состояние сессии, например наличие нужных кукисов или данных в локалсторадж, и возвращаем true или false
}
}]);
li(ng-if='!isAuth()')
a(ui-sref='login')
span.glyphicon.glyphicon-lock
| Вход
li(ng-if='isAuth()')
a(ng-click='logOut()')
span.glyphicon.glyphicon-log-out
| Выход