2016-05-01 3 views
0

У меня есть эта директива:Угловое - Выберите из списка и установите кнопку

app.directive('sampleDirective' , function() { 
    return { 
     controller: function ($scope) { 
      $scope.numbers = [ 
        {number : '1 '}, 
        {number : '2 '}, 
        {number : '3'}, 
        {number : '4'}, 
       ]; 
     } 
    } 
}); 

Я называю этот номер в списке, как это:

  <sample-directive> 
      <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-dropdown dropdown-toggle">choose number<i class="icon icon-arrow-down"></i></button> 
      <ul class="dropdown-menu list-unstyled text-right"> 
       <ul> 
       <li ng-repeat="x in numbers"> 
        <a href = "#"> {{ x.number }} </a> 
       </li> 
       </ul> 
      </ul> 
      </sample-directive> 

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

+0

«установить это значение кнопки»: что это значит? Почему вы используете директиву для инициализации массива в области? Просто поместите этот код в контроллер. Вы не должны использовать директиву для этого. –

+0

@ JBNizet почему? почему я не должен его использовать? – AFN

+1

Потому что это не то, для чего предназначены директивы. Модель страницы должна обрабатываться ее контроллером, а не директивами. Нет причин добавлять элементы в DOM, которые ничего не представляют, и просто используются для добавления массива в область. Более того, разметка предполагает, что массив существует только между и, что неверно. –

ответ

1

В контроллере:

$scope.setSelectedNumber = function(n) { 
    $scope.selectedNumber = n; 
} 

В вашей ссылке:

<a href="" ng-click="setSelectedNumber(x.number)"> {{ x.number }} </a> 

В вашей кнопки:

{{ selectedNumber ? selectedNumber : 'choose number' }} 

или еще проще:

{{ selectedNumber || 'choose number' }} 
+0

Это значение не изменилось. – AFN

+0

Вы все еще не уточнили. На какой кнопке вы говорите. Где вы положили '{{selectedNumber}}'? –

+0

AFN

0

Может быть, это может работать

<a href = "#" ng-click="setNumber(x.number)"> {{ x.number }} </a> 

$scope.setNumber = function(num){ 
$scope.btnValue = num 

} 

<button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-dropdown dropdown-toggle">choose number<i class="icon icon-arrow-down" ng-value="btnValue"></i></button> 

 Смежные вопросы

  • Нет связанных вопросов^_^