有条件的ng-repeat角添加样式

帕库鲁·丹尼尔(Pacuraru Daniel)

我在div列表上使用ng-repeat,并且手动在渲染此div的json中添加项目。我需要放置我在json中添加的最后一个div,它会自动在屏幕上重绘,光标所在的位置,其余的都保持在相同的位置,但是没有在渲染它的json中给出位置。

我的方法是这样的

<div ng-repeat="contact in jsonContacts" style="left: {{lastX}}px; top: {{lastY}}px;"></div>

但是,当我这样做时,所有的div都得到了这个位置,因此我需要使用$ last变量来创建条件,以使用左侧和顶部的CSS添加或删除样式标签。

提前谢谢你,丹尼尔!

安迪·布朗

查看这fiddle两种方法的示例(在jsfiddle中使用颜色作为位置更加困难)

选项1:ng样式和范围函数

ng-style将使您能够做到这一点,并且要使其保持整洁和可测试,您应该定义一个范围函数,如下所示(对于稳定的1.0.x版本的angular,尽管不支持1.1.5版本,目前尚不支持在角度表达式中使用三元运算符。三元支持)。

ng-style='myStyleFunction($last)'

在控制器中,定义:

$scope.myStyleFunction = function($last) {
  return {
    'left': $last ? $scope.lastX + 'px' : '',
    'top': $last ? $scope.lastY + 'px' : ''
  };
}

选项2:自定义指令

或者,您可以考虑更多“角度”并定义一个指令:

dirModule.directive('positionLast', function() {
    return {
        scope: true,
        link: function (scope, $element, attrs) {
            if (scope.$last) {
              // if jQuery is present use this, else adjust as appropriate
              $element.css("left", $scope.lastX + 'px');
              $element.css("top", $scope.lastY + 'px');
            }
        }
    }
});

接着:

<div ng-repeat="contact in jsonContacts" position-last> ...

编辑这通过使用scope: true并在ng-repeat元素上声明指令来起作用由于仅为一个元素上的所有指令创建一个新作用域(假设至少有一个请求一个新作用域),因此它可以访问ng-repeat作用域值有关相关文档,请参见:

scope-如果设置为true,则将为此指令创建一个新的范围。如果同一元素上的多个指令要求一个新的作用域,则仅创建一个新的作用域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angularjs嵌套ng-repeat有条件的原因

来自分类Dev

在 AngularJS 的 ng-repeat 中有条件地应用 CSS 样式

来自分类Dev

有条件地在ng-repeat中添加行

来自分类Dev

使用ng-repeat有条件地添加额外的元素

来自分类Dev

有条件的ng-class样式适用于所有div

来自分类Dev

在指令模板内的ng-repeat中编译有条件插入的html

来自分类Dev

具有条件js的ng-repeat过滤器

来自分类Dev

如何使用ng-repeat并显示带有条件的选项

来自分类Dev

ng-repeat和ui-sortable中带有条件的角度$ index编号

来自分类Dev

在指令模板内的ng-repeat中编译有条件插入的html

来自分类Dev

有条件地将ng-repeat应用于CSS吗?

来自分类Dev

使用带有条件的ng-repeat一次显示文本

来自分类Dev

根据ng-repeat中的先前值有条件地显示值-angularjs

来自分类Dev

有条件地添加日期

来自分类Dev

有条件地添加限制

来自分类Dev

在angular js中有条件地添加ng-checked属性

来自分类Dev

根据过滤器的值有条件地添加ng-animate指令

来自分类Dev

使用ng-class有条件地添加CSS3动画

来自分类Dev

根据过滤器的值有条件地添加ng-animate指令

来自分类Dev

如何在有条件的组件上有条件地添加道具?

来自分类Dev

AngularJS-有条件地将使用ng-style的样式应用于ng-repeat中的第一个元素

来自分类Dev

如何在对象属性的ng-repeat上有条件地应用Angular过滤器?

来自分类Dev

有条件地在ng-repeat中应用angualrjs自定义过滤器

来自分类Dev

有条件功能的无点样式

来自分类Dev

在Wordpress中有条件地打印CSS样式

来自分类Dev

有条件地设置RowGroup的样式

来自分类Dev

在Wordpress中有条件地打印CSS样式

来自分类Dev

有条件地使用 .less 样式表

来自分类Dev

有条件地添加到jQuery .when

Related 相关文章

热门标签

归档