В настоящее время я пытаюсь разработать приложение AngularJS. Это мое первое приложение, использующее AngularJS, и я думаю, что я хорошо знаю, как это работает, поскольку я был разработчиком Silverlight в течение нескольких лет: -)
Однако есть одна, простая вещь, которую я не могу понять: как получить начальные данные для приложения, когда оно начнется.
Мне нужна простая таблица данных, в которой несколько полей могут редактироваться встроенными (по выпадающим спискам). Моя структура приложения такова:
app.js
var app = angular.module('feedbackApp', []);
feedbackService.js
app.service('feedbackService', function ($http) {
this.getFeedbackPaged = function (nodeId, pageNumber, take) {
$http.get('myUrl', function (response) {
return response;
});
};
});
feedbackController.js
app.controller('feedbackController', function ($scope, feedbackService, $filter) {
// Constructor for this controller
init();
function init() {
$scope.feedbackItems = feedbackService.getFeedbackPaged(1234, 1, 20);
}
});
Разметка
<html ng-app="feedbackApp">
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
</head>
<body>
<table class="table" style="border: 1px solid #000; width:50%;">
<tr ng-repeat="fb in feedbackItems | orderBy: 'Id'" style="width:auto !important;">
<td data-title="Ansvarlig">
{{ fb.Name }}
</td>
<td data-title="Kommentar">
{{ fb.Comment }}
</td>
</tr>
</table>
</body>
Но при запуске приложения таблица пуста. Я думаю, это связано с тем, что приложение запускается до того, как данные из службы добавляются в viewmodel ($ scope), но я не знаю, как сделать его инициализацией до запуска приложения, поэтому отображаются первые 20 строк таблицы.
Кто-нибудь знает, как это сделать?
Спасибо заранее!