У меня возникла задача сделать некоторый HTTP-запрос угловатым. Я очень новый с угловатыми, и я горячие конкретные правила, как я должен был сделать это приложение. Можете ли вы сказать мне, возможно ли это сделать, что я опишу или нет, и если возможно, как?
В связи с этим мне нужно иметь пару кнопок или обычных ссылок, которые будут вызывать функции в контроллере. Поэтому мне нужен один контроллер с несколькими функциями, и мне нужно, чтобы данные из каждой функции были доступны только при вызове. Я сделал функцию в контроллере:
(function() {
'use strict';
angular
.module('userManager')
.controller('userDataController', userDataController);
function userDataController(auth, $scope,$http){
var vm = this;
vm.loggedUser = auth;
vm.allUsers=[];
function allUsersGet() {
$http({
method: 'GET',
url: 'http://localhost:3000/users/allUsers',
headers: {
'Content-Type': 'application/json'
}
}).then(function (response) {
vm.allUsers = response.data;
});
}
}
})();
Но я не могу получить эти данные. Может ли кто-нибудь сказать мне, как писать ссылку в режиме просмотра и печати данных, и мне нужно немного изменить функцию в контроллере?
заранее спасибо
Вы можете использовать контроллер в любом шаблоне:
<div ng-controller="userDataController as $ctrl">
<button ng-click="$ctrl.allUsersGet()">get users data</button>
<pre>
{{ $ctrl.allUsers }}
</pre>
</div>
Вы также хотите связать функцию allUsersGet с контроллером. Вместо
function allUsersGet() { ...
записывать
this.allUsersGet = function() { ...
<div ng-controller="userDataController as userData" >
<div ng-repeat="user in userData.allUsers">
{{user}}
</div>
</div>
Для привязки данных с помощью "this", вы можете использовать вышеупомянутый подход.
Изменение поиска ваших данных для установки данных в область $scope
}).then(function (response) {
vm.allUsers = response.data;
$scope.allUsers = response.data;
});
По вашему мнению, вы можете закодировать данные следующим образом:
<div ng-repeat="user in allUsers">
{{user}}
</div>