AngularJS ng-selected

Я использую следующий код на своем веб-сайте. Все работает нормально, но всякий раз, когда я выбираю значение в первом выборе, второй выбор всегда возвращает выбранное значение как A, даже если я выбираю B во втором выборе. Может ли кто-нибудь сказать мне, в чем проблема.

     <span ng-show="a.Action">Called</span><select name="First" form="{{a.ID}}" ng-model="Calling" ng-show="!a.Action">
                            <option value="">Not Called</option><option value="C">Called</option>
                    </select>
                        </td>
                        <td colspan="1">
                         <select name="Second"  form="{{a.ID}}" ng-disabled="Calling==C" ng-show="!a.Action">
                            <option value="A" ng-selected="a.Disposition == 'A'">A</option>
                            <option value="B" ng-selected="a.Disposition == 'B'">B</option>
                         </select>
                          <select name="Second"  form="{{a.ID}}"  ng-show="a.Action">
                            <option value="A" ng-selected="a.Disposition == 'A'">A</option>
                            <option value="B" selected="selected" ng-selected="a.Disposition == 'B'">B</option>
                          </select>

Это мой угловой код в html файле. Форма отправляется в файл php, где значение $_POST[Second] всегда равно A, если значение в a.Disposition равно A/пусто, и всегда B, если значение в a.Disposition равно B при загрузке страницы. Я изменяю выбранное по умолчанию значение в поле выбора Second. Тем не менее, это значение не передается. Однако после удаления первого оператора выбора, т. е. когда значение существует в a.Action, второй оператор выбора работает нормально. Может ли кто-нибудь сказать мне, почему это происходит и как мне обойти эту проблему?


person Aditya Singhal    schedule 05.07.2017    source источник
comment
Можете ли вы добавить скрипку для того же кода?   -  person Vipul Panth    schedule 05.07.2017


Ответы (1)


В обоих ваших операторах «выбрать» у вас есть «ng-selected», который отвечает за выбранное значение по умолчанию, но, поскольку вы не объявили «ng-value», выбранное значение не учитывается в модели контроллера. Вы должны связать выбор с моделью, используя

<select name="Second" ng-value="yourModel" form="{{a.ID}}" ng-disabled="Calling==C" ng-show="!a.Action">
    <option value="A" ng-selected="a.Disposition == 'A'">A</option>
    <option value="B" ng-selected="a.Disposition == 'B'">B</option>
</select>

затем выбранное значение будет сохранено на стороне контроллера как

$scope.yourModel
person Soria Gustavo    schedule 05.07.2017
comment
Как мне отправить это выбранное значение вместе с заголовками при отправке формы. Я новичок в angular, поэтому многого не знаю. И почему эта проблема не возникает, когда первый выбор не существует (или не отображается всякий раз, когда a.Action имеет заданное значение)? Тогда второй выбор работает нормально. Почему это? - person Aditya Singhal; 05.07.2017