2014-10-26 90 views
2

我有一個對話框,我想在兩個不同的地方使用,所以我已經構建了一個模板和一個控制器trackCtrl以供使用的模式。該控制器被定義settingsApp模塊,它是不是一個啓動模式,所以我願做這樣的事情:如何使用Angular-ui-Bootstrap模塊中另一個模塊的控制器?

var modalInstance = $modal.open({ 
    templateUrl: 'templates/track.html', 
    controller: 'settingsApp.trackCtrl' 
}); 

但它失敗,當然。

解決此問題的最佳方法是什麼?

謝謝!

+0

只需使用控制器的名稱,無論其模塊是什麼。在運行時,無論模塊是什麼,所有組件都在相同的命名空間中。 – 2014-10-26 14:29:25

+0

我有以下錯誤: 「錯誤:[ng:areq]參數'trackCtrl'不是函數,未定義」 – Eran 2014-10-26 14:57:24

+1

然後控制器沒有命名爲'trackCtrl',或者它根本沒有定義,或者它模塊未加載。沒有看到代碼很難提供幫助。 – 2014-10-26 14:59:19

回答

0

問題是定義控制器的js文件從未運行。 (控制器應簡稱爲它的名稱。)

1

只需添加一個依賴到你的其他模塊,然後只是簡單地使用該控制器名稱。

angular('app', ['settingsApp']); 

var modalInstance = $modal.open({ 
    templateUrl: 'templates/track.html', 
    controller: 'trackCtrl' 
}); 
+0

謝謝,我想在大多數情況下,它會工作,但它不適用於我的項目。 我已經在'$ modal.open'命令和'angular.module(「settingsApp」)'存在且可訪問之前暫停了調試。 有沒有其他建議? – Eran 2014-10-26 14:54:53

相關問題