Что такое «viewModel» в angularjs и как оно работает по порядку? - PullRequest
1 голос
/ 12 марта 2020

Я хочу знать порядок, как он работает, когда я определяю состояние . Я могу объяснить, увидев код ниже

    $stateProvider.state("clients.index", {
        url: "",
        templateUrl: "/client/index",
        controller: "clientIndexController",
        resolve: {
            viewModel: ["clientService", function (clientService) {
                return clientService.getAllClients();
            }]
        }
    });
.factory("clientService", ["$http", function ($http) {
    return {
        getAllClients: function () {
            return $http({
                method: 'GET',
                url: '/api/client/list',
                headers: {
                    'Content-type': 'application/json'
                }
            });
        }
    }

}])

resol - это обещание, которое должно произойти перед загрузкой контроллера и templateURL. Но как насчет viewModel . Это зарезервированное слово? Я go до clientService , затем получаю список клиентов, затем назначаю этот список клиентов для viewModel ?

1 Ответ

0 голосов
/ 12 марта 2020

viewModel - это просто имя свойства. Можно использовать любое имя. Было бы разумнее использовать более значимое имя, например allClients.

. Свойство resolve состояния маршрутизатора представляет собой карту зависимостей, которые должны быть введены в контроллер. Если какие-либо из этих зависимостей являются обещаниями, маршрутизатор будет ожидать их разрешения или отклонения. Если все обещания разрешены успешно, вводятся значения разрешенных обещаний.

Можно определить более одного свойства для объекта resolve:

$stateProvider.state("clients.index", {
    url: "",
    templateUrl: "/client/index",
    controller: "clientIndexController",
    resolve: {
        allClients: ["clientService", function (clientService) {
            return clientService.getAllClients();
        }],
        otherData: function(otherService) {
            return otherService.getOtherData();
        }
    }
});

В этом случае оба сервисы должны успешно вернуть данные, прежде чем маршрутизатор создаст экземпляр контроллера и шаблона.

...