我看到人们在网上发布关于使用Angular ui-router的内容,我看到这些类型的代码没有明确地显示控制器名称,所以它甚至如何知道如何调用控制器?
state('new-rp', {
url: '/new/:portfolioId',
templateUrl: 'new.html',
controller: function($scope, $stateParams) {
$scope.portfolioId = $stateParams.portfolioId;
}
})
我的TRIED代码没有像上面那样列出控制器
.state("deviceDetail", {
url: "/devices/:DeviceId", // param is required which specific device id
templateUrl: "app/devices/deviceDetailView.html", // ui elements
controller: function($scope,$stateParams) {
$scope.DeviceId = $stateParams.DeviceId;
}
});
问题是控制器没有被击中
但是这段代码明确地使用了控制器名称并且控制器被命中,因此我遇到了这种类型的代码如何命中控制器的问题
controller: function($scope,$stateParams) {
$scope.DeviceId = $stateParams.DeviceId;
}
它如何知道?(对我不起作用)
答案 0 :(得分:0)
您可以在UI路由器状态中以两种方式声明控制器:
//1
.state('new-rp', {
url: '/new/:portfolioId',
templateUrl: 'new.html',
controller: function($scope, $stateParams) {
$scope.portfolioId = $stateParams.portfolioId;
}
})
//2
.state('new-rp', {
url: '/new/:portfolioId',
templateUrl: 'new.html',
controller: PortfolioController
})
.
.
.
//PortfolioController definition
在方法#1中,您的控制器是为您内联创建的,而在#2中,UI路由器正在寻找一个名为PortfolioController
的显式声明的控制器