可以在ui router中$stateprovider中的状态视图部分内使用resolve或任何东西将特定数据传递给angularjs的控制器
我需要将特定的数据输入到控制器中,该控制器位于ui路由器$stateProvider状态的视图部分中可以在ui router中$stateprovider中的状态视图部分内使用resolve或任何东西将特定数据传递给angularjs的控制器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我需要将特定的数据输入到控制器中,该控制器位于ui路由器$stateProvider状态的视图部分中 state('main', { abstract: true url: "/main" controller: 'MainController' templateUrl: "main.html" }) .state('main.state1', { url: "", views: { 'view1': { res
state('main', {
abstract: true
url: "/main"
controller: 'MainController'
templateUrl: "main.html"
})
.state('main.state1', {
url: "",
views: {
'view1': {
resolve: function() {
return {
configuration: "widget1"
};
},
templateUrl: "sample1.html",
controller: 'Controller1'
},
'view2': {
resolve: function() {
return {
configuration: "widget2"
};
},
templateUrl: "sample2.html",
controller: 'Controller2'
},
'view3': {
resolve: function() {
return {
configuration: "widget3"
};
},
templateUrl: "sample3.html",
controller: 'Controller3'
},
'view4': {
resolve: function() {
return {
configuration: "widget4"
};
},
templateUrl: "sampl4.html",
controller: 'Controller4'
}
}
});
现在我的问题是,这个代码是否适用于给出以下结果
<div class="main-column">
<div class="detail-container">
<h2>{{pageTitle | translate}}</h2>
</div>
<div class="grid grid-flex">
<div autoscroll="false" ui-view="view1"></div>
<div autoscroll="false" ui-view="view2"></div>
<div autoscroll="false" ui-view="view3"></div>
<div autoscroll="false" ui-view="view4"></div>
</div>
</div>
{{pageTitle | translate}}
如果您只需要传递数据,不需要解析,请执行以下操作
.state('state1', {
url: 'url',
templateUrl: 'views/misc/profile.html',
controller: 'profileController',
data: {
configuration: 'widget'
}
});
如果你需要解决,那么试试这个
state('state1', {
url: "url.html",
views: {
'view1': {
resolve: {
configuration: function() {
return "widget1";
}
},
templateUrl: "sample1.html",
controller: 'Controller1'
},
'view2': {
resolve: {
configuration: function() {
return "widget2";
}
},
templateUrl: "sample2.html",
controller: 'Controller2'
},
'view3': {
resolve: {
configuration: function() {
return "widget3";
}
},
templateUrl: "sample3.html",
controller: 'Controller3'
},
'view4': {
resolve: {
configuration: function() {
return "widget4";
}
},
templateUrl: "sampl4.html",
controller: 'Controller4'
}
}
});
我不确定resolve是否可以在视图级别工作。我以为是在州一级。我们最初尝试了使用数据,但似乎不起作用。无论如何,非常感谢,我将给出一个trydata,它不在视图级别工作。这是在同一html文件上有多个视图的情况。我希望在“视图”部分下,将不同的值传递给处于相同状态的不同控制器。我已更新问题,以使问题更清晰。resolve关键字必须是相对于状态而不是视图的(如果使用多个视图)。如果要在实例化子级之前等待承诺被解析,则必须将解析密钥注入子级状态。好的,谢谢您的回复。您在控制器中使用$scope.xx=$state.current.views.viewA.data获取数据的又一个小查询。有没有可能在不知道“viewA”的情况下获取数据的值?我的意思是,因为我们正在编写一个通用控制器,控制器应该如何知道它们在哪个视图中并获取数据