检测li的用户选择

时间:2014-07-08 09:41:04

标签: angularjs angularjs-ng-repeat

我有一个项目列表(“locals”数组),我在列表中显示

<ul class="list-group">
            <li ng-repeat="loc in locals" class="list-group-item"><a href="" data-id={{loc.ID}}>{{loc.location}}</a>
            </li>
 </ul>

我希望用户能够选择一个项目,然后在代码中使用此项目。 这是什么首选方式。

此外,我正在创建移动应用程序,因此我应该能够知道用户在移动设备中选择了此项目(而不仅仅是使用鼠标点击)。

2 个答案:

答案 0 :(得分:4)

您可以使用角度js ng-click事件(在ng-repeat所在的项目上,并执行以下操作:fiddle

控制器的代码片段:

function MyCtrl($scope) {
    $scope.templateList = [{id:1, name: 'Template1'}, {id:2, name: 'Another Template'}]

    $scope.template = {};
    $scope.setValue = function(list) {
        $scope.template.template_id = list.id;
        $scope.template.template_name = list.name;
    }
}

HTML:

<div ng-app>
 <form ng-controller="MyCtrl">
    <input type="hidden" name="template_id" ng-model="template.template_id" />
    <input type="text" name="template_name" ng-model="template.template_name" />
    <ul>
        <li ng-repeat="list in templateList" ng-click="setValue(list)">{{list.name}}</li>
    </ul>
</form>
</div>

答案 1 :(得分:0)

试试这个:

在html中,

<ul class="list-group">
        <li ng-repeat="loc in locals" class="list-group-item">
          <a href="" data-id={{loc.ID}} ng-click="selectLoc(loc.location)">
            {{loc.location}}
          </a>
        </li>
 </ul>

在JS中,

$scope.selectLoc = function(location){
  console.log(location);
     //Here you will get the selected location.
   var SomeVar = location;
 }

希望这会有所帮助......