У нас есть URL, который выглядит примерно так: something/contacts/contact1/version
,
который в действительности будет something/contacts/john/1
, который представляет текущий номер ревизии этого контакта.
У нас есть выпадающий список со всеми возможными изменениями.
Проблема: если я хочу вручную изменить номер версии в URL-адресе на что-то, что не существует, должна появиться ошибка.
Я использую AngularJS и Redux.
HTML-код:
<div class="dropdown pull-right mr10">
<button ng-show="ctrlRdx.subject.versions.length > 1 " class="btn btn-default btn-sm dropdown-toggle m0" type="button" data-toggle="dropdown">
Version {{ctrlRdx.subject.subjectInfo.version}}
<span class="ml10 caret"></span>
</button>
<ul class="pull-right dropdown-menu" ng-mouseleave="open = false">
<li ng-repeat="v in ctrlRdx.subject.versions">
<a ng-href="#/schemas/{{ctrlRdx.subjectData.subjectName}}/{{v}}">
version {{v}}
</a>
</li>
</ul>
</div>
CTRL:
function handleRouteParams() {
let subjectVersion = 'latest';
if ($routeParams.version) {
subjectVersion = $routeParams.version;
}
return {
subjectName: $routeParams.subject,
version: subjectVersion,
};
}
$scope.selectedMenu = _.last($location.path().split('/'));
const subjectData = handleRouteParams();
const disconnect = $ngRedux.connect(mapStateToController, MappedActions)(this);
ctrl.subjectData = subjectData;
ctrl.globalConfigGet();
ctrl.singleSubjectInit(subjectData.subjectName, subjectData.version);
ctrl.list();
ctrl.singleSubjectGet(subjectData.subjectName, subjectData.version);
ctrl.singleSubjectConfigGet(subjectData.subjectName);
ctrl.singleSubjectVersionsGet(subjectData.subjectName);
ctrl.singleSubjectHistoryGet(subjectData.subjectName);
У меня проблемы с этим. Может кто-нибудь помочь?