首先,请原谅我,如果我的英语不好,那不是母语。
所以,我设置了一个返回最多20个项目的搜索表单,如果有更多项目,那么用户可以在页面之间切换。因此会有未知数量的页面。以下是我现在的工作方式:(有两页的例子)
<form class="searchForm" method="POST" action="~/Search/Products">
<input type="hidden" name="keyword" value="@Model.Keyword" />
<input type="hidden" name="pagenum" value="{{choosedPage}}" id="page" />
<button type="submit" ng-click="choosedPage=1" class="btn btn-primary">1</button>
<button type="submit" ng-click="choosedPage=2" class="btn btn-primary">2</button>
</form>
因此,当用户点击按钮时,它会更改&#34; choosedPage&#34;并直接使用我们想要的页面触发提交操作。我检查一下,一切正常。
但是虽然看起来很hacky,如果在ng-click操作之前触发提交操作怎么办?它甚至可能吗?你有另一个想法(除了每页创建1个表单按钮)。 谢谢。
答案 0 :(得分:1)
所以,首先,你并不需要Angular来做你正在做的事情。您只需将name
和value
分配给type="submit"
的按钮即可。
<form class="searchForm" method="POST" action="~/Search/Products">
<input type="hidden" name="keyword" value="@Model.Keyword" />
<button type="submit" name="pagenum" value="1" class="btn btn-primary">1</button>
<button type="submit" name="pagenum" value="2" class="btn btn-primary">2</button>
</form>
Web实际上存在于Angular之前,你知道:)
但是,如果您需要执行一些额外的Angular任务,可以在表单元素 而不是 ng-submit
上使用ng-click
按钮:
<form ng-submit="doSomethingBeforeSubmit($event)"
method="POST" action="~/Search/Products">
...
</form>
这将在提交表单之前调用$scope.doSomethingBeforeSubmit
。 $event
是一个特殊变量,您可以将其传递给doSomethingBeforeSubmit
函数。
这是ng-submit
文档。