我有角度的ui-routing。 例如我有电影控制器,我有类别方法,当用户输入/电影/类别时,我想调用此方法
.state('movies', {
url: '/movies',
views: {
'pageContent': {
controller: 'movies',
templateUrl: 'movies.html'
}
}
})
我怎样才能实现这样的目标:
.state('moviesCategories', {
url: '/movies/categories',
views: {
'pageContent': {
controller: 'movies',
**method: 'categories',**
templateUrl: 'categories.html'
}
}
})
答案 0 :(得分:0)
如果要在路线更改时执行方法,可以将此代码插入categories.html
<div data-ng-init="categories();"> ... </div>
答案 1 :(得分:0)
控制器应该添加$ state.go(&#39; moviesCategories&#39;);此方法重定向到状态moviesCategories
文档中的样本
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html"
})
.state('state1.list', {
url: "/list",
templateUrl: "partials/state1.list.html",
controller: function($scope) {
$scope.items = ["A", "List", "Of", "Items"];
}
})
答案 2 :(得分:0)
更好地为每条路线创建单独的控制器。让我们说'categoriesController'。
$routeProvider
.when('/movie',{
templeteUrl:'templates/movies',
controller:'moviesController'
)
.when('/movies/categories',{
templeteUrl:'templates/movieCategories',
controller:'movieCategoryController',
resolve:{
categories://pull categories using a service here. inside service write $http call.
}
);
控制器内的
//will inject the categories we got in reolve
angular.controller('movieCategoryController',['categories','$scope',functions(categories,$scope){
$scope.categories=categories;
}]);