尝试利用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什么都不返回。我相信它可能与基于预编译和缩小的编译有关。不确定如何解决。想法?
答案 0 :(得分:2)
除非您使用https://struts.apache.org/docs/security-bulletins.html之类的构建工具,否则您必须为resolve
属性提供DI注释,即
resolve: {
artist: ['artist', function(artist) {
return artist.getArtist();
}]
}
我会考虑重命名您的resolve属性,使其与您的artist
服务不同。至少就是这样,你会得到一个关于未解决的提供者的错误。我会选择eventArtist
这样的东西。