У меня есть реализация ветров, где он принимает объект местоположения и отображает свойства в пользовательском интерфейсе. Я перехожу к нескольким свойствам и стараюсь сохранить изменения, но бриз не распознает объект как измененный. Ниже мой код:breeze не распознает измененный объект
[HttpGet]
[CustomAuthorize(Claims = "permission:CanViewLocationAttributes")]
public Location GetLocationById(int clientId, int locationId)
{
//returns a single Location object
}
Ниже моя функциональность на стороне клиента, чтобы получить объект и сохранить объект:
function getLocationById(clientId, locationId) {
var self = this;
return EntityQuery.from('GetLocationById')
.withParameters({ clientId: clientId, locationId : locationId })
.using(self.manager)
.execute()
.then(querySucceeded, this._queryFailed);
function querySucceeded(data) {
if (data.results.length > 0) {
return data.results[0];
}
logSuccess(localize.getLocalizedString('_RetrievedLocations_'), locations, true);
}
}
function saveLocationSettings(clientId) {
var self = this;
var saveOptions = this.manager.saveOptions.using({ resourceName: "SaveLocationSettings", allowConcurrentSaves: true });
var entitiesToSave = self.manager.getChanges();
return self.manager.saveChanges(entitiesToSave, saveOptions).then(saveSucceeded, saveFailed);
}
Моя проблема заключается в том, что здесь значение entitiesToSave является 0, даже после того как я вносить изменения в поля в пользовательском интерфейсе и сохранять их.
После как я связать объект с моей угловой модели:
function getLocationDetails() {
clientcontext.location.getLocationById($route.current.params.clientId, $route.current.params.id)
.then(function (data) {
basicLocationSettings.id = data.locationId;
basicLocationSettings.parent = data.fkParentLocationId;
basicLocationSettings.locationType = data.locationType;
basicLocationSettings.locationName = data.locationName;
basicLocationSettings.locationDisplayName = data.locationDisplayName;
basicLocationSettings.locationCode = data.locationCode;
basicLocationSettings.isActive = data.activeStatus;
basicLocationSettings.timeZone = data.fkTimeZoneId;
basicLocationSettings.usesAppointments = data.usesAppointments;
basicLocationSettings.availabilityWindowDays = data.availabilityWindowDays;
basicLocationSettings.appointmentCutOffDays = data.appointmentCutOffDays;
basicLocationSettings.dailySummaryEmailTime = data.dailySummaryEmailTime;
basicLocationSettings.reminderBeforeApptEmailTime = data.reminderBeforeApptEmailTime;
basicLocationSettings.saveLocationSettings = function() {
clientcontext.location.saveLocationSettings($route.current.params.clientId);
}
});
}
Может кто-нибудь объяснить, что я делаю неправильно? Это моя первая попытка на ветру, и я как бы застрял здесь.
Но тогда не способ, которым мы можем использовать какую-то ViewModel для UI-связывания ? Мой запрос на бриз выполняется через отдельный репозиторий, и я использую отдельный контроллер для связи с пользовательским интерфейсом, где создается мой объект pojo. В этом дизайне, как я могу привязать ветерок непосредственно к пользовательскому интерфейсу? – devC
Это отдельный вопрос, который нужно задать под тегом angularjs. Я постараюсь помочь, но у меня нет большого опыта с угловыми. –
Спасибо за подсказку, я понял, что я делаю неправильно и исправил ее. Я отвечу отдельно. Как вы и предполагали, это был не легкий ветерок, который вызывал проблемы, он был угловатым. – devC