首先,感谢这个伟大的插件! (对于angularAMD的作者)
我有些麻烦。我有所有加载了ngAMD的模块,但是有两个在我的index.html中,因为是模板而且我是这样的:
<div ng-include="'views/header.html'"></div>
header.html使用HeaderCtrl,但我不知道如何在angularAMD.bootstrap之前加载......
更多代码:
需要应用的header.coffee
define ['app', 'bootstrap'], (app, bs) ->
'use strict'
app.controller 'HeaderCtrl', ($scope, $rootScope) ->
$scope.searchText = "";
$scope.updateSearch = ->
$rootScope.searchText = $scope.searchText;
app.coffee
define ['angular', 'angularAMD'], (angular, angularAMD) ->
'use strict'
app = angular.module 'testsApp', [
'ngRoute'
'localization'
'restangular'
]
angularAMD.bootstrap app
app
启动应用程序后,ng尝试解决ng-include但未加载HeaderCtrl!这只发生在页面上的CTRL + F5,这是加载时间的问题。我不知道如何解决这个问题。任何提示?
答案 0 :(得分:2)
问题是angularAMD.bootstrap app
位置。我在加载每个依赖项之前进行了自举。
我在删除加载后移动angularAMD.bootsrapp
调用,现在所有工作都是:
bootstrap.coffee (应用程序引导程序)
define [
'app'
'jquery'
'_'
'angularAMD'
'ctrl/header'
'ctrl/menu']
, (app, $, _, angularAMD) ->
# bootstrapping all dependencies
$.get "modules/modules.json", (deps) ->
# converts all array items from DEP to module!DEP
deps = _.map deps, (dep) ->
"module!#{dep}"
console.log JSON.stringify deps
require deps, ->
console.log "Dependencies loaded!"
# I'll bootstrap angular only after each dependencies are loaded, this prevents many 'random' issues.
angularAMD.bootstrap app
我希望这可以帮助某人:)