我最近开始研究AngularJS,正在研究Angular UI for Bootstrap框架的用法。
但是,我在一个非常基本的测试案例中遇到了障碍!
我尝试做的是打开一个带有动态标题和内容的模式(在这个简单的测试中,为了简单起见,我只是从$scope.open(_, _, _)
调用中获取它)。
然而,一个小问题 - 在Modal Example on the Angular UI for Bootstrap page之后,我发现自己无法从params
传递ModalController
对象(处理模式演示的部分的控制器) ,到控制各个模态对话的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)
问题:如何正确地将参数从总体控制器传递到对话实例控制器?
答案 0 :(得分: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) { ...
基于您链接的示例。