javascript - AngularJS UI 状态提供程序解析状态

标签 javascript angularjs angular-ui-router resolve

尝试利用 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 不返回任何内容。我相信这可能与基于预编译和缩小的编译有关。但不确定如何修复。想法?

最佳答案

除非您使用像 ng-annotate 这样的构建工具,您必须为 resolve 属性提供 DI 注释,即

resolve: {
    artist: ['artist', function(artist) {
        return artist.getArtist();
    }]
}

我会考虑重命名您的解析属性,使其与您的artist服务不同。至少这样,您就会收到有关未解析的提供程序的错误。像 eventArtist 这样的东西是我的选择。

关于javascript - AngularJS UI 状态提供程序解析状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34734774/

相关文章:

angularjs - UI Bootstrap 下拉指令导致多目录问题

jquery - 复杂的动态表结构HTML

javascript - 用户界面.路由器 : Save $state state when leaving and continous when reentering

AngularJS UI-Router 从 State 的数据对象访问 $stateParams

javascript - 无论单击哪一个,都会打开最后一个 Google map 标记的信息窗口

javascript - Angular ngResource 数组路径变量

固定大小的 Javascript 多维数组

javascript - Angular ui-router 将值解析为字符串

javascript - 打印窗口关闭时清除 div

Javascript - 通过 ID 获取 <li> 之间的文本