AngularJS UI 状态提供者解析状态
AngularJS UI State Provider Resolve States
尝试利用 AngularJS UI 状态并使用解析来设置变量。
我目前在 app.js --
中有这个
var stateConfig = ['stateHelperProvider', function(stateHelperProvider) {
stateHelperProvider
.state({
name: 'events',
url: '/' + artistSlug,
templateUrl: "/templates/events/events.html",
controller: "EventsCtrl",
resolve: {
artist: function(artist) {
return artist.getArtist();
}
}
});
在 EventsCtrl 中我有以下 --
angular.module('artist.events.controllers', []).
controller('EventsCtrl', ['$filter', '$rootScope', '$scope', '$state', '$stateParams', '$location', 'artist', function($filter, $rootScope, $scope, $state, $stateParams, $location, artist) {
$scope.artist = artist;
在我的本地开发机器上,它解析正确。然而,在 prod 中,$scope.artist returns 什么都没有。我相信这可能与基于预编译和缩小的编译有关。不确定如何修复。想法?
除非您使用 ng-annotate 之类的构建工具,否则您必须为 resolve
属性提供 DI 注释,即
resolve: {
artist: ['artist', function(artist) {
return artist.getArtist();
}]
}
我会考虑重命名您的解决方案 属性,使其与您的 artist
服务不同。至少这样,您会收到有关未解析提供程序的错误。 eventArtist
之类的东西是我的选择。
尝试利用 AngularJS UI 状态并使用解析来设置变量。 我目前在 app.js --
中有这个var stateConfig = ['stateHelperProvider', function(stateHelperProvider) {
stateHelperProvider
.state({
name: 'events',
url: '/' + artistSlug,
templateUrl: "/templates/events/events.html",
controller: "EventsCtrl",
resolve: {
artist: function(artist) {
return artist.getArtist();
}
}
});
在 EventsCtrl 中我有以下 --
angular.module('artist.events.controllers', []).
controller('EventsCtrl', ['$filter', '$rootScope', '$scope', '$state', '$stateParams', '$location', 'artist', function($filter, $rootScope, $scope, $state, $stateParams, $location, artist) {
$scope.artist = artist;
在我的本地开发机器上,它解析正确。然而,在 prod 中,$scope.artist returns 什么都没有。我相信这可能与基于预编译和缩小的编译有关。不确定如何修复。想法?
除非您使用 ng-annotate 之类的构建工具,否则您必须为 resolve
属性提供 DI 注释,即
resolve: {
artist: ['artist', function(artist) {
return artist.getArtist();
}]
}
我会考虑重命名您的解决方案 属性,使其与您的 artist
服务不同。至少这样,您会收到有关未解析提供程序的错误。 eventArtist
之类的东西是我的选择。