如何默认选择第一个项目,然后在AngularJs中突出显示所选项目
how to select first item by default and then highlight the selected item in AngularJs
我正在开发一个应用程序,它在左侧显示所有项目,默认情况下,它应该突出显示第一个项目,并在右侧视图中显示项目的详细信息。当用户单击列表中的任何项目时,它应该突出显示该项目,并在右侧视图中显示所选项目的详细信息。
这是我的代码(左视图):
<div ng-repeat="item in itemList()| filter:{status: itemType}">
<div id="itemRow" ng-click="selectedItem(item)" ng-class="{'active':selectedItemid === item.id}">
<div id="itemRowContent">
<div id="itemName" class="appFont"><b>{{item.name}}</b></div>
</div>
</div>
</div>
控制器内:
$scope.selectedItem= function(item){
$scope.selectedItem = item;
$scope.selectedItemid = item.id;
};
右侧视图:
<div class="headersInfoRow2"> {{selectedItem.type}}:</div>
<div class="headersInfoRow2"> {{selectedItem.price}}</div>
<div class="headersInfoRow3"> {{selectedItem.quantity}}</div>
...
目前,它正在显示选中的项目,如何在右侧视图中突出显示第一个项目并默认显示第一个项的详细信息。
假设$scope.selectedItem能够像您所说的那样正确地进行单击,那么只需在控件初始化过程中或加载数据后立即对第一个项调用函数即可。例如,在控制文件的底部,或者在将数据加载到itemList的函数的末尾,调用:
$scope.selectedItem( itemList[0] );
一种选择是在ng-class
中使用三元运算符检查$scope.selectedItemid
是否未定义。如果$scope.selectedItemid
未定义,请检查该项目是否是重复中的第一个,并使用ng-reeat:的$first属性
ng-class="{'active':selectedItemid==undefined ? $first : selectedItemid === item.id}"
非常简单。
假设您有一个类.selected
,它附加到活动的元素;然后,您可以修改HTML/Angular代码以使用ng-class
指令。
ng-class="{selected: $index==0}"
你所尝试的是非常相似的,但它需要在那个轨道上。请尝试此代码,应该可以工作。
相关文章:
- angularjs移除焦点上的活动类并添加到下一个项目
- AngularJS获取范围中的选定项目
- 如何通过AngularJS删除一个项目
- 如何在Angularjs中通过点击项目重定向
- AngularJS通过自定义指令传递点击的项目
- angularjs ng重复确定点击的项目
- Angularjs - 复选框 - 计算多个选定/未选定项目
- 在angularJs的选择框中预先选择一个项目
- 如何使用angularJS在多个项目之间共享代码
- AngularJs/GitHub :如何在没有任何历史记录的情况下将角度种子克隆到我的新项目中
- Firebase API 问题与 AngularJS 网站示例项目
- Grunt angularJs项目没有来自后端的依赖性's数据
- 在AngularJS项目中使用Lodash有好处吗
- 将jquery插件应用于angularJS ng repeat中的新项目
- angularjs中列表中单个项目的独立范围
- 在angularjs中一次选择一个项目
- simple{{}}不在angularJS项目中工作
- 在内部数组中查找项目 - angularJS
- 如何单击列表中的项目并在新页面中查看该项目?AngularJS和Ionic
- 单击一起处理迭代中的所有项目 - AngularJS