Angular stateParams 到控制器,$urlRouterProvider
Angular stateParams to controller, $urlRouterProvider
我正在使用 Ionic 和 AngularJS 构建应用程序。
现在我有一个包含项目列表的页面。每个项目都有一个 ID,因此点击结果如下所示:
/item/1
或
/item/2
其中 1 和 2 是 ID。
现在我有这样的默认状态,对于具有此列表的主页:
.state('app.home', {
url: "/home/",
views: {
'menuContent': {
templateUrl: "app/home.html"
},
},
controller: 'HomeCtrl'
})
我想要的是将参数传递给控制器。我发现的是以下解决方案,但这不起作用。原因是它不知道要使用哪个控制器(在上面的示例中,指定了 HomeCtrl
。)。
.state('app.item', {
url: "/item/:id",
views: {
'menuContent': {
templateUrl: "app/item.html"
},
},
controller: function($scope, $stateParams) {
$scope.id = $stateParams.id;
}
})
如你所见controller
现在有一个功能,但是我在哪里指定要使用的实际控制器?
另外,这是正确的方法还是有 better/easier 方法?
.controller('controllerName',
[ '$scope','$stateParams'
function($scope , $stateParams ) {
//
$scope.id = $stateParams.id;
在 $stateParams.id 中,id 将是您在 url(:id).
中定义的参数名称
顺便说一句 - 更简洁的方法是:
angular.extend($scope, $stateParams);
这会将 $stateParams
键复制到您所在的 $scope
。
我正在使用 Ionic 和 AngularJS 构建应用程序。
现在我有一个包含项目列表的页面。每个项目都有一个 ID,因此点击结果如下所示:
/item/1
或
/item/2
其中 1 和 2 是 ID。
现在我有这样的默认状态,对于具有此列表的主页:
.state('app.home', {
url: "/home/",
views: {
'menuContent': {
templateUrl: "app/home.html"
},
},
controller: 'HomeCtrl'
})
我想要的是将参数传递给控制器。我发现的是以下解决方案,但这不起作用。原因是它不知道要使用哪个控制器(在上面的示例中,指定了 HomeCtrl
。)。
.state('app.item', {
url: "/item/:id",
views: {
'menuContent': {
templateUrl: "app/item.html"
},
},
controller: function($scope, $stateParams) {
$scope.id = $stateParams.id;
}
})
如你所见controller
现在有一个功能,但是我在哪里指定要使用的实际控制器?
另外,这是正确的方法还是有 better/easier 方法?
.controller('controllerName',
[ '$scope','$stateParams'
function($scope , $stateParams ) {
//
$scope.id = $stateParams.id;
在 $stateParams.id 中,id 将是您在 url(:id).
中定义的参数名称顺便说一句 - 更简洁的方法是:
angular.extend($scope, $stateParams);
这会将 $stateParams
键复制到您所在的 $scope
。