Problem polega na tym, że używam interfejsu użytkownika i mam dwa widoki, jeden jest rodzajem paska narzędzi, drugi jest wypełniony formularzem.Angular.js - czy walidacja formularza powoduje emisję?
Teraz chciałbym mieć przycisk Zapisz na pasku narzędzi, który byłby wyłączony, gdyby formularz nie był $valid
. Ale te dwa są na całkowicie różnych zakresów, to jak:
- rootScope
- zakres Pasek
- zakres zawartości (z
form.$valid
)
Więc myślałem, że poradzić sobie z tym słuchając pewnych ważnych wydarzeń emitowanych przez formularz.
Zgodnie z tym co powiedział Vojta here te wydarzenia powinny istnieć, ale nie mogę znaleźć nigdzie im określony .. i patrząc na this nie widzę żadnych wydarzeń ..
pewnie mógłby zrobić
$scope.$watch('form.$valid', function(newVal, oldVal) {
$scope.$emit('validityChange', {'form':newVal});
});
ale czuje się jak za pomocą zdarzenia, zamiast tego byłoby lepiej
może powinienem spróbować czegoś zupełnie innego? Zauważ, że nie mogę umieścić interfejsu ui-view paska narzędzi w widoku ui treści .. i zgodnie z this, dwa widoki ui po prostu nie mogą mieć tego samego zakresu.
Czy ta odpowiedź nie jest odpowiedni? –