Angularjs ng-repeat не обновляется с обновленными значениями

0

У меня есть функция для вставки и обновления записей во всплывающем окне (ngdialog). Когда Im добавление и обновление записей вставляются и обновляются в базе данных, но эти обновленные значения не являются обязательными с помощью ng-repeat.

Обновленные записи отображаются только при обновлении полной страницы.

Код контроллера:

 $scope.OpenUserPlaceMap = function (userplace) {
    if (angular.isObject(userplace)) {
        $scope.UserPlaceID = userplace.Id;
        $scope.UserPlaceName = userplace.Name;
        $scope.FormattedAddress = userplace.FormattedAddress;
    }
    else {
        $scope.UserPlaceID = '';
        $scope.UserPlaceName = '';
        $scope.FormattedAddress = '';
    }
    ngDialogAlert.ShowPopup('UserPlacesMap.html', 'CommanCtrl', $scope);
};

$scope.SubmitUserPlace = function (flg) {
    $scope.error = [];

    var UserPlace = {
        "Id": $scope.UserPlaceID,
        "UserId": $scope.UserId,
        "Name": $scope.UserPlaceName,
        "FormattedAddress": $scope.FormattedAddress,
        "CircleID": $scope.DefaultCircle,
        "Latitude": $scope.Latitude,
        "Logitude": $scope.Logitude,
        "Flag": flg
    };
    SWT360Service.InUpdDelUserPlace(UserPlace).success(function (data) {
        if (data > 0) {

            ngDialogAlert.ClosePopup();
            $scope.error.push('Saved Successfully');
            ngDialogAlert.ShowAlert(true, $scope.error);
            $scope.LoadUserPlaces();
        }
        else {
            $scope.error.push('User Place not saved Successfully !');
        }
    }).error(function (data) {
        $scope.error.push(data);
    });
}
 $scope.LoadUserPlaces = function () {
    $scope.UserPlaces = '';
    SWT360Service.GetUserPlace(null, $scope.UserId, $scope.DefaultCircle).success(function (data) {
            $scope.UserPlaces = data;
    });
};

Посмотреть:

 <div class="container" ng-repeat="place in UserPlaces" style="cursor:pointer;" ng-click="OpenUserPlaceMap(place);">
                    <div class="col-lg-12 bg-success text-center">
                        <i class="fa fa-map-marker"></i> <span style="display:none;">{{place.id}}</span> <span>{{place.Name}}</span> <br />
                        <span>{{place.FormattedAddress}}</span><br>
                    </div>
                    <div class="clearfix"></div>
                    <hr>
                </div>
Теги:

1 ответ

0

Попробуйте добавить наблюдателя на UserPlaces как UserPlaces ниже, и обернуть все внутри него. $ часы и область обновления.

$scope.OpenUserPlaceMap = function (userplace) {
    if (angular.isObject(userplace)) {
        $scope.UserPlaceID = userplace.Id;
        $scope.UserPlaceName = userplace.Name;
        $scope.FormattedAddress = userplace.FormattedAddress;
    }
    else {
        $scope.UserPlaceID = '';
        $scope.UserPlaceName = '';
        $scope.FormattedAddress = '';
    }
    ngDialogAlert.ShowPopup('UserPlacesMap.html', 'CommanCtrl', $scope);
};

$scope.$watch('UserPlaces', function(UserPlaces) {

    $scope.SubmitUserPlace = function (flg) {
        $scope.error = [];

        var UserPlace = {
            "Id": $scope.UserPlaceID,
            "UserId": $scope.UserId,
            "Name": $scope.UserPlaceName,
            "FormattedAddress": $scope.FormattedAddress,
            "CircleID": $scope.DefaultCircle,
            "Latitude": $scope.Latitude,
            "Logitude": $scope.Logitude,
            "Flag": flg
        };
        SWT360Service.InUpdDelUserPlace(UserPlace).success(function (data) {
            if (data > 0) {

                ngDialogAlert.ClosePopup();
                $scope.error.push('Saved Successfully');
                ngDialogAlert.ShowAlert(true, $scope.error);
                $scope.LoadUserPlaces();
            } else {
                $scope.error.push('User Place not saved Successfully !');
            }
        }).error(function (data) {
            $scope.error.push(data);
      });
    }
    $scope.LoadUserPlaces = function () {
        $scope.UserPlaces = '';
        SWT360Service.GetUserPlace(null, $scope.UserId, $scope.DefaultCircle).success(function (data) {
            $scope.UserPlaces = data;
        });
    };
});
  • 0
    Ананд, спасибо за ответ. Я получаю обновленные записи в объекте Userplaces, но ng-repeat не обновляется после привязки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню