угловая функция в контроллере

0

У меня возникла задача сделать некоторый 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;
        });
    }

}
})();

Но я не могу получить эти данные. Может ли кто-нибудь сказать мне, как писать ссылку в режиме просмотра и печати данных, и мне нужно немного изменить функцию в контроллере?

заранее спасибо

  • 0
    необходимо связать функцию (и) для вызова из вида в область $ $
  • 0
    я могу избежать $ scope? А если я не могу, как связать?
Показать ещё 6 комментариев
Теги:
function

3 ответа

0
Лучший ответ

Вы можете использовать контроллер в любом шаблоне:

<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() { ...
  • 0
    Кстати, в $ ctrl нет ничего особенного. Это просто соглашение, взятое из угловых компонентов. Вместо этого вы можете использовать любое другое имя.
  • 0
    Спасибо, ты очень быстро мне помог. Я получил ответ сейчас, чтобы взять данные, которые я хочу. Этот вопрос можно закрыть.
Показать ещё 1 комментарий
1
<div ng-controller="userDataController as userData" >
 <div ng-repeat="user in userData.allUsers">
   {{user}}
 </div>
</div>

Для привязки данных с помощью "this", вы можете использовать вышеупомянутый подход.

0

Изменение поиска ваших данных для установки данных в область $scope

}).then(function (response) {
    vm.allUsers = response.data;
    $scope.allUsers = response.data;
});

По вашему мнению, вы можете закодировать данные следующим образом:

<div ng-repeat="user in allUsers">
  {{user}}
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню