角度表单和路由
我有一个简单的表单,它基本上是一个搜索字段,用户输入参数并将其重定向到适当的页面。角度表单和路由
我想在形式参数来传递以类似的方式(玉):
form(name='searchForm', ng-href='#/item/{{ctrl.search}}')
input(type='text', ng-model='ctrl.search')
基本上,我只是希望路由当用户按下Enter键更改为#/item/argument
在已经输入后搜索字段。
我该如何做到这一点?
非常感谢
在猜测我想你可以设置窗体上的action
属性 - 这是何等的HTML表单传统的数据发送到一个URL。
但是,我通常会在表单元素上添加一个处理程序来代替ng-submit
指令。在处理程序中,你将有这样的事情(记得要$location
服务添加到您的控制器):
HTML
form(ng-submit="ctrl.onSubmit($event)")
JS(控制器)
this.onSubmit = function (e) {
e.preventDefault();
$location.url('item/' + this.search);
}
Here's a Plunker
首先你需要一个动态路线,如
.when('/results/:item',
您搜索与参数
$scope.doSearch = function() {
$location.path('results/' + $scope.search);
}
沿着基本上改变了位置,然后拿起那routeParams并作出$ http.get到您的端点。
$http.get('endpoint/' + $routeParams.item)
我正在使用ui-router,并且在使用$ state.go时出现以下错误:无法解析(当前状态)的'results/item'。我怎样才能解决这个问题? – Spearfisher 2014-11-04 07:51:37
使用UI-Router - http://plnkr.co/edit/dq4v9bolkLoT91aNMOLo?p=preview – Dylan 2014-11-04 17:07:19
也许你能抛开链接到的东西,详细解释了什么,你的意思是,“作为一个,你应该使用$范围的服务,数据注入到从控制器的观点 - 这就是它的存在是有“? – user2503764 2017-03-21 08:46:17
谢谢 - 我已删除该评论。我相信这是'controller as'语法的早期阶段,它使用$ scope不推荐使用数据注入。我的速度肯定有点慢。 – 2017-03-22 04:12:52