【问题标题】:Angular-Browserify + ui.router - States produces "Uncaught object"Angular-Browserify + ui.router - 状态产生“未捕获的对象”
【发布时间】:2014-06-20 09:10:16
【问题描述】:

我有一个项目需要比大多数专门针对小型项目的 angular-browserify 播种机更好的结构。是否有可能有一个需要所有路线的索引?如this (which is on RequireJS)

我的项目正在使用 gulp.js 和 coffeescript

我的项目结构

- assets/
    - bower_components/
    - coffee/
        - directives/
            - login.coffee
            - registration.coffee
        - services/
            - auth.coffee
            - user.coffee
        - utils/
            - states/
                    - auth.coffee
                    - dashboard.coffee
                    - index.coffee
                    - main.coffee
                    - modules.coffee
                    - otherwise.coffee
        - app.coffee
        - main.coffee

assets/main.coffee

bootstrap = require '../bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap'
$ = require '../bower_components/jquery/dist/jquery'

$(document).ready ->
    angular = require '../bower_components/angular/angular'
    angular_ui_router = require '../bower_components/angular-ui-router/release/angular-ui-router'
    lumina = require './app'
    services = require './services/modules'
    directives = require './directives/modules'
    states = require './utils/states/modules'

    return

assets/app.coffee

app = angular.module 'app', ['ui.router']

module.exports = app

assets/utils/states/modules.coffee

otherwise = require './otherwise'
dashboard = require './dashboard'
auth = require './auth'
main = require './main'
index = require './index'

assets/utils/states/auth.coffee

app = require '../../app'

app.config [($stateProvider) ->
    auth = 
        name: 'main.auth'
        abstract: true
        resolve:
            auth: AuthSrvc ->
                return AuthSrvc.check()

    $stateProvider.state(auth);
]

/assets/utils/states/dashboard.coffee

app = require '../../app'

app.config [($stateProvider) ->

]

/assets/utils/states/index.coffee

app = require '../../app'

app.config [($stateProvider) ->
    index =
        name: 'main.index'
        url: '/'
        resolve:
            auth: AuthSrvc ->
                return AuthSrvc.check()

    $stateProvider.state(index)
]

/assets/utils/states/main.coffee

app = require '../../app'

app.config [($stateProvider) ->
    main =
        name: 'main'
        abstract: true
        templateUrl: '../views/main/template.html'

    $stateProvider.state(main);
]

/assets/utils/states/otherwise.coffee

app = require '../../app'


app.config [($urlRouterProvider) ->
    $urlRouterProvider.otherwise '/'
]

当我尝试加载状态文件时,我收到“未捕获对象”错误。我也不知道为什么。

【问题讨论】:

  • 您的堆栈跟踪是否比错误消息更完整?
  • 我在 app.coffee 上的 angular.module() 上尝试了 try-catch,但似乎没有任何改变。有什么想法或提示吗?
  • 你的控制台没有给你某种堆栈跟踪吗?
  • 哦,你是说这个? imgur.com/iNUQaF7
  • 是的,这类错误通常在缺少模块时出现。

标签: angularjs coffeescript


【解决方案1】:

这是由于没有注入依赖项。这就是我形成我的配置/状态/任何东西的方式。

app.config [($stateProvider) ->
    auth = 
        name: 'main.auth'
        abstract: true
        resolve:
            auth: AuthSrvc ->
                return AuthSrvc.check()

    $stateProvider.state(auth);
]

注意第 1 行,其中我注释了依赖项以进行缩小。我同样没有注释依赖:app.config ['$stateProvider', ($stateProvider) ->

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多