好吧,正如标题所述,我遇到了这个问题,比方说,我有一个包含多个步骤的表单,我使用ng-show属性创建了一个函数,用于将$ scope变量设置为标识符为了隐藏除了用户应该经历的步骤之外的一切,一切都运行正常,但是,我意识到表单正在每个用户点击按钮上,以继续下一部分表单。换句话说:
<button class="button button-block button-positive" ng-click="selectTab(2)">Continuar</button</label>
在表单中,制作一些像这样的div:
<div ng-show="tab === 2"> ... data goes here ... </div>
在用户导航时显示并消失,但也提交表单,但如果我更改标签,则会显示:
<label class="item">
<div class="button button-block button-positive" ng-click="selectTab(2)">Continuar</div>
</label>
它根本不会起作用,我的表单不是每次点击都提交的,所以这是对情况的更新,但它也不起作用,¿为什么会发生这种情况? ¿我该怎么办?
提前致谢,很抱歉打扰你们。
答案 0 :(得分:45)
如果您的按钮位于<label>
ng-click内,则无效。
更改为<div>
或<span>
。
答案 1 :(得分:17)
确保使用type =“button”声明您的按钮。如果不这样做,它会自动假定它是类型提交。此外,如果您只想在tab === 2时显示div,只需在ng-click中指定,不需要函数。
在selectTab(2)函数中,您应该能够将范围命名为tab的属性分配给传入函数的任何内容,激活ng-show。
$scope.selectTab = function(item) {
$scope.tab = item;
//Your other logic for soothe
};
是的,很奇怪标准是“提交”按钮。我认为他们认为按钮的最终目的是执行一个动作,比如提交。谢谢你的队友。
答案 2 :(得分:5)
使用点按。同时进行点击和点击点击。
<div on-tap="fireEvent()"></div>
答案 3 :(得分:0)
<label class="item">
<div class="button button-block button-positive" ng-click="selectTab == 2">Continuar</div>
</label>
你应该试试