Выберите значение для переменной в AngularJs - PullRequest
0 голосов
/ 10 января 2019

В Angular.js - Как проверить значение выбранного параметра в раскрывающемся списке?

У меня есть выпадающее меню и кнопка «плюс» рядом с ним.

При нажатии кнопки срабатывает функция. Как мне "выбрать" в var?

({{selected}} работает в html, но я хочу это значение в JS)

>  <select ng-options="key as key for (key, prop) in
> vm.schema.properties" ng-model="selected"">
>     </select>  //the dropdown


<p id="plusbutton">  //the add button
<div class="btn btn-info btn-sm" ng-model="selected" ng-click="vm.addMappingField()">
<span class="glyphicon glyphicon-plus"></span>
</div>
</p>

Javascript / Угловая:

    function addMappingField() {

       var item = {{selected}}; //Here should be the value of the dropdown

        vm.mappingFields.push({
            destination: "item",
        });
    };

Ответы [ 3 ]

0 голосов
/ 10 января 2019

Прежде всего, вы устанавливаете selected как NgModel для двух разных элементов, его следует устанавливать только для тега выбора.

Во-вторых, подключите выбранную модель к виртуальной машине, а затем просто сослаться на нее в методе addMappingField () контроллера

View

<select ng-options="key as key for (key, prop) in vm.schema.properties" ng-model="vm.selected"">
</select> 

<p id="plusbutton">
    <div class="btn btn-info btn-sm" ng-click="vm.addMappingField()">
        <span class="glyphicon glyphicon-plus"></span>
    </div>
</p>

Контроллер

function addMappingField() {

   var item = vm.selected;

    vm.mappingFields.push({
        destination: "item",
    });
};
0 голосов
/ 10 января 2019

Удалить ng-model = "selected" в дом. <div class="btn btn-info btn-sm" ng-click="vm.addMappingField()">

Если вы используете scope как vm, убедитесь, что эти изменения в вашем коде.

 function addMappingField() {

   var item = vm.selected //Here should be the value of the dropdown

    vm.mappingFields.push({
        destination: item,
    });
};

ИЛИ, если в контроллере используется $scope, измените на

var item = $scope.selected
0 голосов
/ 10 января 2019

Вы можете передать выбранную модель в качестве параметра функции addMappingField или получить доступ к ней непосредственно в контроллере, например $scope.selected

<div class="btn btn-info btn-sm" ng-click="vm.addMappingField(selected)">


function addMappingField(selected) {

   var item = selected //Here should be the value of the dropdown

    vm.mappingFields.push({
        destination: "item",
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...