Фон: У меня есть инструмент AngularJs, как приложение с 3 шагами. Шаги мастера содержат 4 состояния uiRouter, в которых используется один контроллер. Первое состояние - это абстрактный вид, содержащий навигацию на основе бутстрапа с ui-view в качестве заполнителя для других 3 вложенных состояний. 3 вложенных состояния имеют отдельные представления, которые содержат уникально названные формы. Я хотел бы управлять навигацией по таблеткам в родительском состоянии, проверяя, действительна ли текущая видимая форма; если форма недействительна, я бы скрыть/отключить возможность для пользователя щелкнуть следующую таблетку навигации.Как обратиться к форме от контроллера
Примечание: Я использую синтаксис «контроллер как», объявленный в состояниях uiRouter.
Вопрос: Кажется, я не могу получить ссылку на текущую видимую форму из контроллера.
Вот что я пытался: 1. Передает ссылку на форму видимой форме в вызове инициализации -> получает Неизвестная ошибка при попытке записи в консоль 2. переименовании формы и даже переходя в ссылка сфера, как описано в этой ссылке: http://www.technofattie.com/2014/07/01/using-angular-forms-with-controller-as-syntax.html
Демонстрация: Вот ссылка plnkr показывает, что намерения: http://plnkr.co/edit/YUnwoBD2dt4bzbfujJSW
контроллер код:
(function() {
'use strict';
angular
.module('recquisitionManagement')
.controller('RecquisitionEditCtrl', [RecquisitionEditCtrl]);
function RecquisitionEditCtrl() {
var vm = this;
// get ref to request form
vm.setRequestForm = function(form) {
vm.requestForm = form;
console.log(form);
// tried to call from form ng-init --> undefined response
}
// console.log($scope.vm.requestForm);
// console.log(vm.requestForm);
vm.recquisition = { id: 0, name: 'some name', date: 'date here' };
vm.requestFormIsInvalid = true; //this.requestForm.$valid;
vm.approvalFormIsInvalid = true;
if (vm.recquisition && vm.recquisition.id > 0) {
vm.title = 'Edit';
} else {
vm.title = 'Create';
}
}
}());
Любые предложения о том, как получить необходимую форму ссылки?
Я пробовал варианты, найденные в ссылке; они, похоже, не работают по моему сценарию. Не могли бы вы прояснить комментарий к именованию? это соглашение об именах, вызывающее проблему? – mwhib