【问题标题】:Is it possible to chain instructions in an ng-click?是否可以在 ng-click 中链接指令?
【发布时间】:2014-07-08 08:52:34
【问题描述】:

我想从菜单中选择几个滑块。 因此,我需要选择正确的滑块并将第一个滑块重置为 0。 我有一个幻灯片模型,在打开弹出窗口之前我将ng-click 设置为 0,但不幸的是,幻灯片没有重置为 0。 有什么想法吗?

PS:我不想将幻灯片变量移动到控制器的范围内。

<div ng-init="slide = 0"></div>

<div 
    ng-repeat="s in sliders"
    style="left:{{s.center.x - 70}}px; top:{{s.center.y}}px"
    ng-click="slide = 0; openPopover('#slides-{{s.name}}')"
    >
    {{s.displayName}}
</div>

【问题讨论】:

  • 尝试$parent.slide = 0slide 原样,在 ng-repeat 范围内是本地的)。
  • 谢谢@Yoshi,这是正确的答案。请把它写成答案,以便我接受。
  • 答案中提到的可能,但不要这样做,在控制器中做一个功能。
  • @StéphanedeLuca 看看我的回答

标签: angularjs angularjs-ng-click angular-ngmodel


【解决方案1】:

只要它是一个有效的 angularjs/js 表达式,它就可以工作

http://plnkr.co/edit/wta6GcVZHVccVbCf08IT?p=preview

<body ng-controller="MainCtrl">
  <p ng-click="set = 'Cowa'; to = 'bunga!'; popup('test')">Hello {{name}}!{{set}}{{to}}</p>
</body>

【讨论】:

    【解决方案2】:

    ng-repeat 创建它自己的范围时,您当前的代码将在这些范围内将slide 设置为0。一种快速(可能很脏)的方法是使用$parent 直接引用父作用域。例如:

    ng-click="$parent.slide = 0; openPopover('#slides-{{s.name}}')"
    

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 2013-01-27
      • 2014-01-23
      • 2017-03-10
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      相关资源
      最近更新 更多