0

サーバーを呼び出してデータを返すサービスがあります。スコープの変数にサービスをバインドしています。

例:

  • サービスをしましょうDataModelService
  • コントローラーで:$scope.data = DataModelService
  • ビューで <div ng-repeat="value in data.persons">{{value.name}}</div>

私のコード:

This is how my code looks like:

/**DataModelService**/
factory('DataModelService', [
    'DataService',
    function (DataService) {
        var service;
        service = {
            changeState: function (params) {
                DataService.changePersonState(params)
                    .then(function (response) {
                        service.loadData(response.data);
                    });
            },
            loadData: function (responseData) {
                service.persons = responseData.persons;
            }
        }
        return service;
    }

]);
/**DataService**/
factory('DataService', ['$http',
    function ($http) {
        return {
            changePersonState: function (params) {
                return $http.post("url", params);
            }
        }
    }
]);


/**DataController**/
.controller('DataController', ['DataModelService',
    function (DataModelService) {
        $scope.data = DataModelService;
    }
]);

/見る/

<div ng-repeat = "person in data.persons" >{{person.name}} </div>

ビューでは、データのキー、つまり ng-repeat="value in data.persons" で ng-repeat を実行しています。また、個人の状態をアクティブまたは非アクティブに変更するオプションがあるため、変更するたびに人の状態に合わせて、呼び出しがサーバーに送信され、データがサービスに設定され、ビューにバインドされると、データが自動的に更新されます。しかし、私の場合、ng-repeat は古いデータを削除するのではなく、新しいデータを古いデータに追加しています。

4

1 に答える 1