Как установить значение из md-options на контроллере? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть простой компонент md-select.Я хочу установить значение number.number для свойства vm.telephonyInfo.phone.number в контроллере.

<md-input-container>
    <md-select ng-model="vm.telephonyInfo.phone.number" placeholder="Selecteer een nummer" required>
        <md-option ng-repeat="number in vm.phonenumbers"
            ng-value="{{number.number}}" ng-click="vm.login()">{{number.number}}</md-option>
    </md-select>
</md-input-container>

Когда я выбираю опцию, я регистрирую функцию login(), но свойство this.telephonyInfo.phone.number всегда равно null.

Моя привязка данных неверна?Я подумал, что должен поместить ng-значение в опцию md, а ng-модель - в md-select.

1 Ответ

0 голосов
/ 23 мая 2018

Используйте директиву ng-change вместо ng-click:

<md-input-container>
    <md-select ng-model="vm.telephonyInfo.phone.number"
               ng-change="vm.login()"
               placeholder="Selecteer een nummer" required>
        <md-option ng-repeat="number in vm.phonenumbers"
            ̶n̶g̶-̶v̶a̶l̶u̶e̶=̶"̶{̶{̶n̶u̶m̶b̶e̶r̶.̶n̶u̶m̶b̶e̶r̶}̶}̶"̶
            ng-value="number.number"
            ̶n̶g̶-̶c̶l̶i̶c̶k̶=̶"̶v̶m̶.̶l̶o̶g̶i̶n̶(̶)̶"̶ >{{number.number}}</md-option>
    </md-select>
</md-input-container>

Также избегайте использования двойной фигурной интерполяции {{ }} в директивах ng-value.См. AngularJS Developer Guide - Почему смешивать интерполяцию и выражения - плохая практика .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...