12

現在、AngularJS アプリを開発しようとしています。これは、AngularJS を使用する初めてのアプリケーションであり、Silverlight 開発者として数年間働いているので、AngularJS がどのように機能するかをかなり認識していると思います :-)

ただし、私が理解できない単純なことが 1 つあります。それは、アプリの起動時にアプリの初期データを取得する方法です。

私が必要としているのは、いくつかのフィールドをインラインで (ドロップダウンで) 編集できるデータの単純なテーブルです。私のアプリの構造は次のようになります。

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>

しかし、アプリケーションを実行すると、テーブルは空です。サービスからのデータがビューモデル($scope)に追加される前にアプリが起動するためだと思いますが、アプリ起動前に初期化する方法がわからないため、最初の20行のテーブルが表示されます。

誰もこれを行う方法を知っていますか?

前もって感謝します!

4

1 に答える 1