Angularjs 在使用命名视图时,如何在基本状态下解析并获得解析值?
TLDR:我无法使处于基本状态的resolve函数工作,也无法使我的命名视图显示正确的内容 我有一组带有命名视图()的工作路由,如下所示:Angularjs 在使用命名视图时,如何在基本状态下解析并获得解析值?,angularjs,coffeescript,angular-ui-router,Angularjs,Coffeescript,Angular Ui Router,TLDR:我无法使处于基本状态的resolve函数工作,也无法使我的命名视图显示正确的内容 我有一组带有命名视图()的工作路由,如下所示: $stateProvider.state("index", url: "" views: viewA: templateUrl: "/partials/index.A.jade" controller: ($scope) -> console
$stateProvider.state("index",
url: ""
views:
viewA:
templateUrl: "/partials/index.A.jade"
controller: ($scope) ->
console.log('index controller') # just confirming that I'm hitting this line
viewB:
templateUrl: "/partials/index.B.jade"
)
... etc, 5+ states
我需要通过承诺添加加载lodash的决心:
resolve: util: ($q, $window) ->
console.log 'resolving base state'
deferred = $q.defer()
require(["cdn-lodash"], (lodash) ->
util = lib: lodash, logger: $window.logger
deferred.resolve(util)
)
deferred.promise
如果我将此解析附加到索引状态,它将正常工作。但我在许多州都需要lodash,所以我宁愿为所有州加载它(或者我可以将此基称为“util”,并将其添加为需要它的州的基:
$stateProvider.state('base',
abstract: true
resolve: util: ($q, $window) ->
console.log 'resolving base state'
deferred = $q.defer()
require(["cdn-lodash"], (lodash) ->
util = lib: lodash, logger: $window.logger
deferred.resolve(util)
)
deferred.promise
)
$stateProvider.state("base.index",
url: ""
views:
viewA:
templateUrl: "/partials/index.A.jade"
controller: ($scope, util) ->
debugger
console.log('index controller')
console.log util
$scope.allowAdmin = true
viewB:
templateUrl: "/partials/index.B.jade"
这不起作用,因为我的命名视图都没有加载,我只得到一个空白页面。但解决方案正在命中。页面加载正常,没有错误,版面中的页眉等正在加载。jade正在加载。因此我尝试将a/B视图添加到基本状态
状态:
views:
viewA: templateUrl: ''
viewB: templateUrl: ''
Crud,现在视图正在加载,但没有正确加载。A视图在标记中出现了两次,而B视图(在索引页上为空)根本不存在。短期内,我想我可以通过在状态声明之外创建一个解析函数并将其放入每个状态的解析中来解决这个问题
还有另一个复杂问题:我的大多数控制器都在它们自己的文件中声明,因此视图行如下所示:
views:
viewA:
controller: 'adminUserList' # <<<<<<<--------- this line
templateUrl: "/partials/admin/user/list.A.jade"
viewB:
templateUrl: "/partials/admin/user/list.B.jade")
视图:
视图A:
控制器:“adminUserList”#您是否可以将整个代码列表发布到plunkr或其他文件中?这可能是一个非常简单的问题,但如果我能看到您的模板和状态是如何交互的,那么调试就会容易得多。