2014-07-15 83 views
0

我最近開始我AngularJS的研究,並正在研究的Angular UI for Bootstrap框架的使用。無法將對象傳遞給AngularUI模式

不過,我碰釘子在一個非常基本的測試案例!

Fiddle: My Failing Modal

我想要做的,是開放與動態的標題和內容的模式(在這個簡單的測試,我只是採購從$scope.open(_, _, _)呼籲,爲簡單起見)。

但是,一個小問題 - 繼Modal Example on the Angular UI for Bootstrap page,我發現自己無法從ModalController(控制器爲正在處理的模式演示的部分)傳遞一個params對象,到ModalInstanceController,它控制個別模態的對話。

具體來說,我得到以下錯誤:

TypeError: Cannot read property 'title' of undefined 
at new <anonymous> (http://fiddle.jshell.net/pEmXt/show/:68:24) 
at invoke (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3624:28) 
at Object.instantiate (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3636:23) 
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:6639:28 
at http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.0.min.js:8:28715 
at wrappedCallback (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:10597:81) 
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:10683:26 
at Scope.$eval (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11576:28) 
at Scope.$digest (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11421:31) 
at Scope.$apply (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11682:24) 

問題:如何正確地從總體控制器傳遞參數,以對話實例控制器?

回答

2

我改變了一點點在你的小提琴代碼。

特別地,添加:

$scope.params = []; 

resolve: { 
    params: function() { 
     $scope.params = { 
      title: modalTitle, 
      message: modalMessage 
     } 
     return $scope.params; 
    } 
} 

內部ModalController。我也改變了你如何聲明控制器:

var ModalController = function ($scope, $modal, $log) { ... 

var ModalInstanceController = function ($scope, $modalInstance, params) { ... 

根據你鏈接的例子。

http://jsfiddle.net/pEmXt/2/

+0

謝謝!有用! ...但對學習部分。爲什麼我不能使用'[controllerObject] .controller(usualAngularStuff)'來定義我的控制器?爲什麼我必須使用一個函數對象作爲控制器呢? –

+0

[controllerObject]是什麼意思? – micronyks

+0

在我的原始示例中,我爲應用程序的控制器定義了一個'angular.module',然後使用'controller'方法在該模塊上定義一個控制器。爲什麼在模塊上定義的控制器無法與Bootstrap Modal的Angular UI一起使用,但是原始函數工作得很好? –