2014-06-10 79 views
2

中的另一個控制器我有ui.bootstrap.modal的工作完全版本按照這裏的例子http://angular-ui.github.io/bootstrap/#/modal但我想採取進一步的階段,並把它添加到我的控制器配置。調用AngularJS UI引導莫代爾

也許我把它太遠(或做錯了),但我不是一個球迷剛剛

var ModalInstanceCtrl = function ($scope... 

我的模式打開控制器:

var controllers = angular.module('myapp.controllers', []); 


controllers.controller('ModalDemoCtrl', ['$scope', '$modal', '$log', 
    function($scope, $modal, $log) { 

     $scope.client = {}; 

     $scope.open = function(size) { 
      var modalInstance = $modal.open({ 
       templateUrl: 'templates/modals/create.html', 
       controller: ModalInstanceCtrl, 
       backdrop: 'static', 
       size: size, 
       resolve: { 
        client: function() { 
         return $scope.client; 
        } 
       } 
      }); 

      modalInstance.result.then(function (selectedItem) { 
       $log.info('Save changes at: ' + new Date()); 
      }, function() { 
       $log.info('Closed at: ' + new Date()); 
      }); 
     }; 
    } 
]); 

莫代爾例如控制器:

var ModalInstanceCtrl = function ($scope, $modalInstance, client) { 

    $scope.client = client; 

    $scope.save = function() { 
     $modalInstance.close(client); 
    }; 

    $scope.cancel = function() { 
     $modalInstance.dismiss('cancel'); 
    }; 
}; 

不過,我想這最後一個控制器更改爲:

controllers.controller('ModalInstanceCtrl', ['$scope', '$modalInstance', 'client', 
    function ($scope, $modalInstance, client) { 

     $scope.client = client; 


     $scope.save = function() { 
      $modalInstance.close(client); 
     }; 

     $scope.cancel = function() { 
      $modalInstance.dismiss('cancel'); 
     }; 
    } 
]); 

如果我還更新內$ scope.open爲ModalDemoCtrl控制器

controller: controllers.ModalInstanceCtrl 

控制器參考則不存在錯誤,但模態窗口內的保存和取消按鈕不再起作用。

是否有人能指出我要去的地方有錯 - 可能對於AngularJS中控制器的工作原理缺乏理解?

+0

我想調用模塊的參考作爲控制器的慣例是不正確的。 – karuthan

回答

2

$ scope.open中指定的控制器需要單引號。

controller: 'ModalInstanceCtrl', 
0

您正在將模塊引用到變量控制器

角系統中的所有控制器都有唯一名稱

控制器仍然是「ModalInstanceCtrl」而不是「controllers.ModalInstanceCtrl」。

+0

謝謝@karuthan,但如果我將它作爲_controllers.ModalInstanceCtrl_引用,我不會收到任何錯誤,但同樣不起作用。 如果我參考它就像_ModalInstanceCtrl_我得到的錯誤: ** ReferenceError:ModalInstanceCtrl未定義** –

+0

克里斯嘗試這個plunker http://plnkr.co/edit/D1BDz3UGkycJhRCMnGQd?p=preview **嘗試'ModalInstanceCtrl'在控制器上。角度照顧注射。 :-) – karuthan

+0

再次感謝@ karuthan - 事實證明,我只需要在我的控制器名稱周圍使用單引號,它一切正常。當我分叉和調試時,你的闖入者真的幫了我很大的忙,以儘可能地接近我的例子。 –