我是AngularJs的新手。我有一个带有按钮的搜索框,该按钮符合Angular应用程序配置中定义的路径。
<div class="search-block clearfix">
<div class="input-group">
<input type="text" placeholder="search here..." class="form-control input-sm">
<div class="input-group-btn">
<button type="button" class="btn btn-default btn-sm" go-click="search.htm">Search</button>
</div><!-- /btn-group -->
</div><!-- /input-group -->
</div>
添加路由配置的代码段:
myApp.config(function ($routeProvider){
$routeProvider.
.when('/search.htm',
{
controller:'controllers.SearchCtrl',
templateUrl:'/partials/search/searchPage.html'
})
.otherwise({ redirectTo: '/' });
....
添加指令(go-click)代码:
myApp.directive( 'goClick', function ( $location ) {
return function ( scope, element, attrs ) {
var path;
attrs.$observe( 'goClick', function (val) {
path = val;
});
element.bind( 'click', function () {
scope.$apply( function () {
$location.path( path );
});
});
};
});
答案 0 :(得分:0)
您可以使用$route
和$routeParams
服务将参数传递给新路线。
如果您将路线更改为:
.when('/search.htm/:paramName',
{
controller:'controllers.SearchCtrl',
templateUrl:'/partials/search/searchPage.html'
})
然后重定向到search.htm/someParam
然后参数someParam
将在路径的控制器中作为服务$routeParams
(包含参数的对象)或$route
服务下的$route.current.params
服务提供(这是同一个对象)。
docs。
中介绍了这一点