在DIV Angular JS之间切换
Toggle between DIV Angular JS
我是AnguarJS的新手。我想知道,是否有办法在不同的DIV之间切换。
比方说,在中,我有一个菜单,点击它,我想关闭当前的DIV,然后打开一个新的。
A当我打开一个潜水,点击另一个潜水时,它也会出现。
有人有个主意,想把这个传出去吗?
HTML:
<div ng-app="app">
<div ng-controller="MainController">
<div>
<ul>
<li data-ng-repeat="Menu in Menus">
<a class="" href="#" ng-click="show=toggle(Menu)">
{{Menu.id}}
</a>
</li>
</ul>
</div>
<div data-ng-repeat="Menu in Menus" ng-show="Menu.show">
<h2>
{{Menu.text}}
</h2>
</div>
</div>
</div>
和JS:
angular.module('app', []).
controller('MainController', ['$scope', function ($scope) {
$scope.Menus = [{
id: 1,
text: "This is first DIV!!!",
show: true
}, {
id: 2,
text: "This is second DIV!!!",
show: false
}, {
id: 3,
text: "This is third DIV!!!",
show: false
}];
$scope.toggle = function (Menu) {
Menu.show = !Menu.show;
return Menu.show;
};
}]);
您可以隐藏所有菜单,只显示选定的菜单,更改切换功能如下:
$scope.toggle = function (Menu) {
$scope.Menus.forEach(function(m) {
m.show = (Menu==m);
});
};
更新:
这里有一个更好的替代方案,更少更快的代码:
您可以去掉数据上的show属性,并将切换功能更改为
$scope.toggle = function (Menu) {
$scope.activeMenu = Menu.id;
};
并将您的ng-show
更改为ng-show="Menu.id==(activeMenu || 1)"
下面是一个工作示例:https://refork.codicode.com/xc23
希望这能有所帮助。
我会添加一个函数,将当前菜单设置为隐藏。然后它会显示首选菜单。
$scope.toggle = function toggle(menu) {
angular.forEach($scope.Menus, function(menuIndex) {
menuIndex.show = false;
})
menu.show = true;
}
我正确理解你的问题了吗?
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么's本地node.js服务器和python简单http服务器之间的区别
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 如何用moment.js列出两个日期之间的所有月份
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- html5视频播放器和视频js之间的关系
- moment.js在两个时区格式的日期之间存在差异
- JS中单词之间的空格
- 我如何知道js文件之间的javascript应用程序代码流
- Node.js服务器和浏览器之间共享二进制缓冲区
- 通过node.js和socket.io在两个用户之间发送消息
- 铯JS-两点之间的距离
- Node.js HTTP/NET——连接和请求之间的区别
- 在使用JS的Ajax调用中,ajaxComplete和beforesend之间有什么区别
- Bacon.js:流和属性之间的实际差异
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- JS get元素之间的差异's属性与elem.getAttribute(attr)和elem[attr]
- 在DIV Angular JS之间切换
- 不同进程之间共享Node.js环境
- 使用PKCS7Padding在python和Node.js之间进行AES加密