将参数传递给 Angular UI 路由器模板
Passing parameters to Angular UI router template
我的 angular ui 路由器正在更改 states/views 为:
$stateProvider
.state({
name: 'home',
url: '/',
template: '<home-view></home-view>',
})
在UI路由器中,有没有办法将绑定参数传递给?
例如
<home-view my-data="dataObject">
或
<home-view my-data="myService.getMyData()">
my-view 的控制器与实际的模板和指令位于自己的文件中。
您可以使用解析器
$stateProvider
.state({
name: 'home',
controller : "MyController"
url: '/',
resolve: {
obj: function() {
return {prop:"hello!"}
}
}
template: '<home-view></home-view>',
})
// MyController
angular.module('app').controller('MyController', function(obj) {
console.log(obj.prop); // hello!
});
最后同事帮忙解决了这个问题。解决方案使用 resolve 获取数据,然后将其作为路由器范围变量传递给模板。重要的学习是在路由器中定义的控制器有它自己的范围而不是 "home-view" 的范围。在我的家庭控制器中,路由器控制器可以通过 $scope.parent.
访问
.state({
name: 'home',
url: '/',
resolve: {
cData: (MyService) => {
return MyService.getMyData()
}
},
controller: function (cData) {
this.data = cData;
},
controllerAs: 'ctrl',
template: '<home-view my-data="ctrl.data"></home-view>'
})
我的 angular ui 路由器正在更改 states/views 为:
$stateProvider
.state({
name: 'home',
url: '/',
template: '<home-view></home-view>',
})
在UI路由器中,有没有办法将绑定参数传递给
例如
<home-view my-data="dataObject">
或
<home-view my-data="myService.getMyData()">
my-view 的控制器与实际的模板和指令位于自己的文件中。
您可以使用解析器
$stateProvider
.state({
name: 'home',
controller : "MyController"
url: '/',
resolve: {
obj: function() {
return {prop:"hello!"}
}
}
template: '<home-view></home-view>',
})
// MyController
angular.module('app').controller('MyController', function(obj) {
console.log(obj.prop); // hello!
});
最后同事帮忙解决了这个问题。解决方案使用 resolve 获取数据,然后将其作为路由器范围变量传递给模板。重要的学习是在路由器中定义的控制器有它自己的范围而不是 "home-view" 的范围。在我的家庭控制器中,路由器控制器可以通过 $scope.parent.
访问.state({
name: 'home',
url: '/',
resolve: {
cData: (MyService) => {
return MyService.getMyData()
}
},
controller: function (cData) {
this.data = cData;
},
controllerAs: 'ctrl',
template: '<home-view my-data="ctrl.data"></home-view>'
})