2013-12-20 44 views
0

首先,感謝這個偉大的插件! (給angularAMD的作者)Angular + 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-包括但沒有加載HeaderCtrl!這隻發生在頁面上的CTRL + F5上,這是加載時間的問題。我不知道如何解決這個問題。任何提示?

+0

你仍然有問題?如果你這樣做,設置一個簡單的撬棍,我會看到我能做些什麼來幫助。 – marcoseu

+0

@marcoseu:謝謝。我解決了。我會盡快在線解決方案。 –

回答

2

問題是angularAMD.bootstrap app的位置。我在加載每個依賴關係之前進行了引導。

我DEP加載後轉移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 

我希望這可以幫助別人:)

相關問題