无法将对象传递给AngularUI模式

时间:2014-07-15 15:57:54

标签: javascript angularjs

我最近开始研究AngularJS,正在研究Angular UI for Bootstrap框架的用法。

但是,我在一个非常基本的测试案例中遇到了障碍!

Fiddle: My Failing Modal

我尝试做的是打开一个带有动态标题和内容的模式(在这个简单的测试中,为了简单起见,我只是从$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)

问题:如何正确地将参数从总体控制器传递到对话实例控制器?

1 个答案:

答案 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) { ...

基于您链接的示例。

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