2017-02-12 6 views
1

Я хочу получить значения элементов li из элемента ul в контроллере AangularJS и сохранить их в массиве.Как получить значения ul li в AngularJS

HTML код

<ul id="list" my-directive> 
     <li>A</li> 
     <li>B</li> 
     <li>C</li> 
     <li>D</li> 
     <li>E</li> 
    </ul> 

Контроллер

app.controller('myCtrl', function($scope) { 
    $scope.newList = []; 
    $scope.newList = $('#list li').html(); 
}) 

Что я делаю неправильно?

ответ

2

Почему бы вам не сделать все это? li элемент только с ng-repeat?

<ul id="list"> 
    <li ng-repeat="alphabet in alphabets">A</li> 
</ul> 

Код

$scope.alphabets = ["A", "B", "C", "D", "E"] 

Может быть у вас есть какой-то особый случай, когда вы визуализации данных со стороны сервера, используя вид двигателя. Хотя ниже способ выполнить с помощью директивы (все-таки я бы рекомендовал использовать первый способ предложил только)

Markup

{{myList}} 
<ul my-directive="myList"> 
    <li>A</li> 
    <li>B</li> 
    <li>C</li> 
    <li>D</li> 
    <li>E</li> 
</ul> 

Директива

.directive('myDirective', function() { 
    return { 
    link: function(scope, element, attrs) { 
     var list = scope[attrs.myDirective] = [] 
     Array.from(element.find('li')).forEach(function(li) { 
     list.push(li.innerText) 
     }); 
    } 
    } 
}) 

Demo

+0

Я написал код как u, но он не работает: –

+0

Si ri хочет добавить templateUrl тоже, я буду использовать этот массив списка в моем файле шаблона, если я добавлю templae, он работает donot –

+0

i отредактировал код uyou, как я хочу использовать –

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