【问题标题】:change ng-class based on click根据点击更改 ng-class
【发布时间】:2015-01-27 17:58:14
【问题描述】:

当用户点击另一个元素时,我想改变一个元素的类。

我首先有这个跨度:

<span class="yesterdaysValue">{{category.content.Value}}</span>

第二个我有一个 img 属性,它根据控制器中声明的函数获取其类(工作正常)

<img ng-class="{true: getArrowClass(category.content.Value, category.content.ValueOneWeekAgo)}[true]" ng-src="{{getArrowSrc(category.content.Value, category.content.ValueOneWeekAgo) }}" />

我想要的是当我单击跨度内的文本时,我想更改 img 属性的类。如果可能,我想使用我的 getArrowClass,但我不知道该怎么做。

$scope.getArrowClass = function (value, valueOneWeekAgo) {
        return value >= valueOneWeekAgo ? 'greenArrow' : 'redArrow'
    }

【问题讨论】:

  • 你会制作小提琴吗?
  • 把课程改成什么?
  • 不管怎样,真的没关系。我只想更改 img 属性的类。最后我会发送两个值,如果 value1 > value 它返回 greenArrow ,否则返回 redArrow (就像我的 $scope.getArrowClass
  • @steffokeffo 喜欢jsfiddle.net/arunpjohny/67tpf542/2 ?
  • 我不确定。我想从单击跨度时调用 getArrowClass 并从那里发送我拥有的两个值。

标签: jquery html angularjs


【解决方案1】:

好吧,既然你只需要让 angular 做另一个摘要,你可以在你的 span 中放置一个 ng-click,它基本上什么都不做(或者几乎什么都不做),但它足以触发一个摘要并因此重新计算类为您的形象:

<span class="yesterdaysValue" ng-click="click = !click">span</span>

我做了一个通用的小提琴来显示目的。 (在我的someFunc 方法中,它只返回作用域上的一个变量,在你的情况下它将执行实际方法)。

JS Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2017-07-11
    相关资源
    最近更新 更多