1) Это потому, что вы забыли включить $uibModal
здесь function ($scope, kostenstelleService) {
(строка 4).Поэтому kostenstelleService
указывает на $uibModal
сейчас.
Должно быть:
appModule.controller('augustinum.views.kostenstelle.index',
['$scope', '$uibModal', 'abp.services.app.kostenstelle',
function ($scope, $uibModal, kostenstelleService) {
2) Это потому, что getKostenstelle()
- это асинхронная операция, заключенная в обещание.JavaScript является однопоточным, что означает, что он выполняет каждую операцию одну за другой и помещает асинхронные операции в очередь ожидания, чтобы не блокировать поток.
В вашем случае происходит следующее:
- Выполнить
vm.getKostenstelle()
- Выполнить
kostenstelleService.getKostenstelle()
и поместить в очередь ожидания
- Выполнить
console.log("Step2" + vm.kostenstellen.length);
- На данный момент
vm.kostenstellen.length
пусто, поскольку асинхронный вызов не завершен
- Асинхронный вызов
kostenstelleService.getKostenstelle()
Завершено .then
блок выполнен;vm.kostenstellen
назначены данные, а console.log("Step1" + vm.kostenstellen.length);
отображает данные