2015-03-04 3 views
0

У меня есть простой вопрос. Но я не могу понять.Как уловить значение модели в Angular, которое добавлено нажатием кнопки?

Я пытаюсь поймать значение моей модели (текстовое поле), которое я добавляю с кликом. Если я напечатаю вручную, я могу поймать значение. Но в остальном ...

This is my code

Спасибо!

+2

Вместо того, ссылка на сайт, как jsbin, SO имеет возможность поставить работоспособные JavaScript-фрагменты внутри вопроса. Я бы рекомендовал использовать это :) – funkwurm

ответ

2

Измените вашу логику, как показано ниже

li.on('click', function(){ 
    var val = $(this).text(); 
    $scope.carData.year=val; 
    input.val(val); 
    $scope.$digest(); 
}); 

В принципе, иногда мы должны усвоить объем при выполнении операций по щелчку и других событий. Отредактируйте jsbin, пожалуйста, посмотрите.

+0

Это работает. Спасибо! –

+0

@BasarSen Можете ли вы принять ответ. – NavyCody

+0

Я принял. Еще раз спасибо. –

1

AngularJS способ сделать это:

В связи вы должны иметь:

<ul ng-repeat="element in list"> 
    <li ng-click="append(element)" >{{element}}</li> 
</ul> 

И в контроллере:

$scope.list = [2010, 2011, 2012, 2013, 2014, 2015]; 
$scope.append = function (elementToAdd){ 
    $scope.carData.year = elementToAdd; 
}; 
1

Это как использовать выпадающий выбор в AngularJS , Для получения дополнительной информации, смотрите на угловых документах для select и ngOptions

шаблон:

<div ng-controller="Controller"> 
    <input type="text" ng-model="carData.year" placeholder="enter car year." /> 
    <br/> 
    <br/> 
    <span class="nullable"> 
     <select ng-options="item for item in years" ng-model="carData.year"> 
     <option value="">-- choose year --</option> 
    </select> 
    </span> 
    <pre>{{carData}}</pre> 
</div> 

контроллер:

var myApp = angular.module('App', []); 
myApp.controller('Controller', function ($scope) { 
    $scope.years = [2010, 2011, 2012, 2013, 2014, 2015]; 
    $scope.carData = {}; 
}); 
Смежные вопросы