2017-02-12 57 views
1

我想从一个ul元素中获取li元素的值,位于AangularJS控制器中并希望将它们存储在一个数组中。如何在AngularJS中获取ul li值

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

为什么不用ng-repeat只渲染所有li元素?

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

代码

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

可能是你,你已经从服务器端使用的视图引擎的渲染数据的一些特殊情况。虽然下面是一个使用指令来完成的方式(还是我建议你使用的第一个建议的方式只)

标记

{{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

我已经写了像你这样的代码,但它不工作: –

+0

Si ri也想添加一个templateUrl,我会在我的模板文件中使用这个列表数组,如果我添加templae它无法工作 –

+0

我编辑你的代码就像我想用 –