如何根据 bootstrap 类 的屏幕尺寸启用 <div class="row"> 的 ng-click 操作?
How can I enabled a ng-click action of a <div class="row"> according to the screen size with bootstrap classes?
我正在使用 angularJs 和 Twitter Bootstrap 形成我的应用程序。
<div class="row">
<div class="col-xs-12">
<div class="row yo-bold">
<div class="col-xs-6 col-sm-5">
{{ "KEY" | translate | capitalize}}
</div>
<div class="col-xs-6 col-sm-5">
{{ "LABELS" | translate | capitalize}}
</div>
<div class="hidden-xs col-sm-2">
{{ "ACTIONS" | translate | capitalize}}
</div>
</div>
<hr />
<div class="row yo-mb5 yo-div-table" ng-repeat="l in langs | filter:searchText | orderBy: '_id' track by $index" ng-class="$index % 2 == 0 ? 'yo-bg-grey' : ''">
<div class="col-xs-6 col-sm-5">
{{ l._id }}
</div>
<div class="col-xs-6 col-sm-5">
<div class="row" ng-repeat="lang in langsAvailable track by $index">
<div class="col-xs-12">
<flag country="{{lang | getLangCode}}" size="16"></flag> {{ l[lang] }}
</div>
</div>
</div>
<div class="hidden-xs col-sm-2">
<button class="btn btn-xs btn-warning" ng-click="openLangModal(l)"><i class="fa fa-pencil"></i></button> <button class="btn btn-xs btn-danger" ng-click="removeLabel(l._id)"><i class="fa fa-trash"></i></button>
</div>
</div>
</div>
</div>
在 > 768px 版本 (col-sm-*) 中看起来像这样:
在 < 768px 版本 (col-xs-*) 中它看起来像这样:
在 <768px 版本中,我删除了动作列,然后在整行上插入一个 ng-click,打开一个模态并在模态中选择所需的动作。
可以吗?
我知道我可以通过为不同的屏幕尺寸创建两个不同的 div class="row" 来做到这一点,第一个是隐藏的 xs,第二个是可见的 xs其次,但我想知道是否有更好的方法。有什么想法吗?
最简单的方法是创建两个不同的 <div>
并使用 ngif 指令有条件地显示所需的一个。
您可以在 Angular 中解决屏幕宽度问题,原因 :
$window.innerWidth
更简洁、更理想的方法是当您的设备宽度小于 768 像素时,通过 jquery 添加自定义属性 (ng-click)。这可以使用 $(window).width()
.
来完成
我们只是根据屏幕宽度添加或删除该属性。
if ( $(window).width() < 768) {
//code goes here
}
怎么做:
由于您使用了 Bootstrap,我显然假设 <768px 屏幕宽度下方的 Actions 列将消失。
1) 将 class 应用于主父行,例如 <div class="row yo-row">
。
2) 我们将使用此 class 来识别行并将 ng-click 属性插入行。
if ( $(window).width() < 768) {
$('.yo-row').attr("ng-click", "openModal()");
}
3) 现在剩下的就是添加模态 div 以便模态打开。简单:-)
注意:很明显,因为它 JavaScript 发挥了作用而不是 CSS,您需要再次制作脚本 运行 才能看到变化。因此,您需要转到任何特定的 window 大小并重新加载它以显示属性。如果您尝试将浏览器 window 从桌面调整为小屏幕并希望它应用该属性,这将不起作用。
您可以将点击事件处理程序附加到检查图标可见性的行。如果图标可见,则什么都不做。如果它们是隐藏的,请使用控件显示您的模式。
我正在使用 angularJs 和 Twitter Bootstrap 形成我的应用程序。
<div class="row">
<div class="col-xs-12">
<div class="row yo-bold">
<div class="col-xs-6 col-sm-5">
{{ "KEY" | translate | capitalize}}
</div>
<div class="col-xs-6 col-sm-5">
{{ "LABELS" | translate | capitalize}}
</div>
<div class="hidden-xs col-sm-2">
{{ "ACTIONS" | translate | capitalize}}
</div>
</div>
<hr />
<div class="row yo-mb5 yo-div-table" ng-repeat="l in langs | filter:searchText | orderBy: '_id' track by $index" ng-class="$index % 2 == 0 ? 'yo-bg-grey' : ''">
<div class="col-xs-6 col-sm-5">
{{ l._id }}
</div>
<div class="col-xs-6 col-sm-5">
<div class="row" ng-repeat="lang in langsAvailable track by $index">
<div class="col-xs-12">
<flag country="{{lang | getLangCode}}" size="16"></flag> {{ l[lang] }}
</div>
</div>
</div>
<div class="hidden-xs col-sm-2">
<button class="btn btn-xs btn-warning" ng-click="openLangModal(l)"><i class="fa fa-pencil"></i></button> <button class="btn btn-xs btn-danger" ng-click="removeLabel(l._id)"><i class="fa fa-trash"></i></button>
</div>
</div>
</div>
</div>
在 > 768px 版本 (col-sm-*) 中看起来像这样:
在 < 768px 版本 (col-xs-*) 中它看起来像这样:
在 <768px 版本中,我删除了动作列,然后在整行上插入一个 ng-click,打开一个模态并在模态中选择所需的动作。 可以吗?
我知道我可以通过为不同的屏幕尺寸创建两个不同的 div class="row" 来做到这一点,第一个是隐藏的 xs,第二个是可见的 xs其次,但我想知道是否有更好的方法。有什么想法吗?
最简单的方法是创建两个不同的 <div>
并使用 ngif 指令有条件地显示所需的一个。
您可以在 Angular 中解决屏幕宽度问题,原因 :
$window.innerWidth
更简洁、更理想的方法是当您的设备宽度小于 768 像素时,通过 jquery 添加自定义属性 (ng-click)。这可以使用 $(window).width()
.
我们只是根据屏幕宽度添加或删除该属性。
if ( $(window).width() < 768) {
//code goes here
}
怎么做:
由于您使用了 Bootstrap,我显然假设 <768px 屏幕宽度下方的 Actions 列将消失。
1) 将 class 应用于主父行,例如 <div class="row yo-row">
。
2) 我们将使用此 class 来识别行并将 ng-click 属性插入行。
if ( $(window).width() < 768) {
$('.yo-row').attr("ng-click", "openModal()");
}
3) 现在剩下的就是添加模态 div 以便模态打开。简单:-)
注意:很明显,因为它 JavaScript 发挥了作用而不是 CSS,您需要再次制作脚本 运行 才能看到变化。因此,您需要转到任何特定的 window 大小并重新加载它以显示属性。如果您尝试将浏览器 window 从桌面调整为小屏幕并希望它应用该属性,这将不起作用。
您可以将点击事件处理程序附加到检查图标可见性的行。如果图标可见,则什么都不做。如果它们是隐藏的,请使用控件显示您的模式。