У меня есть следующий div
<div class="form-group col-lg-12 ignore-left-padding" ng-show="!labeledIntents">
<label for="intent-count"><h4>Number of intents</h4></label>
<div>
<switcher ng-model="manualNumberOfIntents"
ng-change="onSwitcherChange()"
false-label="Autodetect" true-label="Manual input">
</switcher>
<input ng-if="manualNumberOfIntents" show-focus="autoNumberOfIntents"
ng-model="$parent.count" type="number" step="1" min="1"
max="200" id="intent-count" placeholder="1-200"
style="width: 75px;" required/>
</div>
</div>
Там у меня есть переключатель, который при включении отображает поле с номером, которое является обязательным. Для этого текстового поля я установил его так, чтобы оно отображалось при включении «manualNumberOfIntents». После этого пользователю необходимо ввести число или всплывающее сообщение об ошибке. как только все установлено, пользователь нажимает кнопку отправки, которая создает какой-то проект, используя предоставленную информацию.
Вот часть функции, которая вызывается при нажатии submit:
$scope.submit = function (event) {
event.preventDefault();
if (!$scope.file) {
return;
}
$scope.projectNameDuplication = false;
$scope.requestInProgress = true;
var projectname = $scope.projectname.trim();
var userparticipant = $scope.customChatParticipants ? $scope.userparticipant : "USER";
var agentparticipant = $scope.customChatParticipants ? $scope.agentparticipant : "AGENT";
var count = $scope.manualNumberOfIntents ? $scope.count : false;
console.log($scope.count);
Затем она использует переменные и обрабатывает их.
Вот функция, которая получаетвызывается, когда коммутатор активирован:
$scope.onSwitcherChange = function () {
$scope.count = '';
}
В приведенном выше коде console.log ничего не возвращает, независимо от того, что я пытался установить для count. Это заставляет меня поверить, что счетчик просто устанавливается на '$ через $ scope.onSwitchChange, но никогда больше не затрагивается. Я провел некоторое исследование и обнаружил, что ng-if создает свою собственную область, и поэтому, если я использую ng-model = "count", он не будет работать, поскольку он пытается сосчитать количество ссылок в области, к которой родитель не может получить доступ. Таким образом я поставил ng-model = "$ parent.count". Однако это все еще не работает ... у кого-нибудь есть идеи?
Когда я изменяю $ scope.count, он делает это в родительской области видимости, поэтому он не должен влиять на то, как я ссылаюсь на него вHTML верно? Любые предложения будут ценны! Я довольно новичок в angularjs, поэтому заранее прошу прощения, если это очевидный вопрос.