Я пишу приложение, в котором у меня есть форма, и я должен ПОСТАВИТЬ содержание формы.Для этого я написал эту короткую функцию:
$scope.record = function (data_form, validation_control, validate) {
var data = {};
data_form.$getControls().forEach(function (control) {
if (control.$valid) {
data[control.$name] = control.$modelValue;
control.$processModelValue(); // For normalization
}
});
server_post(data).then(
/* … */
);
};
Форма включает в себя несколько «стандартных» входных данных, а также некоторые специально созданные директивы с ng-model
и name
, которые ведут себя как сложные входные данные.
К сожалению, эти директивы включают некоторые «стандартные» входные данные в свои шаблоны.Затем значения для этих внутренних входов отображаются в моем data
объекте.
Я думал, что смогу обернуть эти внутренние входы в дочернюю форму, которая должна игнорироваться моей функцией record
.Но дочерняя форма все еще обнаруживается во время сканирования.Более того, действительность дочерней формы влияет на достоверность родительской формы.
Есть ли способ разорвать связь между дочерней формой и родительской формой?
В качестве альтернативы, чтобыло бы чистым способом определить во время сканирования, что элемент управления на самом деле является дочерней?Object()
, поэтому все элементы управления игнорируются.Насколько я понимаю, функция FormController
является внутренней по отношению к AngularJS.
Или есть альтернативный способ скрыть мои «внутренние» входы от формы?