如何让控制器知道点击了哪个按钮? [角/自举]

时间:2016-01-04 06:34:44

标签: javascript angularjs twitter-bootstrap

所以我有一个按钮组,每个按钮对应一个playing card

<div class="btn-group" role="group">
  <button ng-repeat="card in cards" type="submit" class="btn btn-default card">{{card.rank}} {{card.suit}}</button>
</div>

我想要的是当点击一个按钮时,它会调用控制器的play()并让它知道哪张卡对应于点击的按钮。我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以使用declare @t table(yyyymm varchar(30), value int) insert into @t values ('2015-01', 20) insert into @t values ('2015-02', 50) insert into @t values ('2015-03', 35) insert into @t values ('2015-04', 10) insert into @t values ('2015-02', 13) insert into @t values ('2015-04', 11) insert into @t values ('2015-04', 111) insert into @t values ('2015-05', 12) declare @result table(yyyymm varchar(30), value int) insert into @result select yyyymm, sum(value) from @t group by yyyymm order by yyyymm declare @yyyymm varchar(30) declare @value int, @valueIncrement int set @valueIncrement=0 --select * from @result declare #Cr CURSOR local for select yyyymm, value from @result open #Cr FETCH NEXT FROM #Cr INTO @yyyymm, @value WHILE (@@FETCH_STATUS <> -1) BEGIN IF(@@FETCH_STATUS <> -2) BEGIN set @valueIncrement=@valueIncrement+@value if (not @value=@valueIncrement) begin update @result set value=@valueIncrement where yyyymm=@yyyymm end; if (@valueIncrement>=100) set @valueIncrement=0 END FETCH NEXT FROM #Cr INTO @yyyymm, @value END close #Cr deallocate #Cr --select * from @t order by yyyymm select * from @result

将相应的卡片作为参数传递

<强> HTML:

ng-click

<强> JS:

 <div class="btn-group" role="group">
      <button ng-repeat="card in cards" type="submit" ng-click="play(card)" class="btn btn-default card">{{card.rank}} {{card.suit}}</button>
  </div>

答案 1 :(得分:1)

首先,我不会创建按钮type="submit",因为这不会为您提供所需的控件,因此请删除该属性。然后,添加一个ng-click="play(card); $event.preventDefault()"属性,使其调用控制器上的play()方法,传入卡片,并防止单击按钮的默认浏览器行为,这通常是提交表单。