Javascript 无法将对象传递给AngularUI模式
我最近开始研究AngularJS,并正在研究该框架的用途 然而,我在一个非常基本的测试用例中遇到了一个障碍 我试图做的是打开一个带有动态标题和内容的模式(在这个简单的测试中,我只是从Javascript 无法将对象传递给AngularUI模式,javascript,angularjs,Javascript,Angularjs,我最近开始研究AngularJS,并正在研究该框架的用途 然而,我在一个非常基本的测试用例中遇到了一个障碍 我试图做的是打开一个带有动态标题和内容的模式(在这个简单的测试中,我只是从$scope.open(,,,)调用中获取它,为了简单起见) 但是,有一个小问题-在之后,我发现自己无法将params对象从ModalController(处理模态演示的部分的控制器)传递到ModalInstanceController,后者控制各个模态对话 具体来说,我得到以下错误: TypeError: Can
$scope.open(,,,)
调用中获取它,为了简单起见)
但是,有一个小问题-在之后,我发现自己无法将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)
TypeError:无法读取未定义的属性“title”
在纽约(http://fiddle.jshell.net/pEmXt/show/:68:24)
在调用时(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3624:28)
在Object.instantiate(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3636:23)
在http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:6639:28
在http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.0.min.js:8:28715
在wrappedCallback(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:10597:81)
在http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:10683:26
在范围内。$eval(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11576:28)
在范围内。$摘要(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11421:31)
在范围内。$apply(http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:11682:24)
问题:如何正确地将参数从总体控制器传递到对话实例控制器?我稍微更改了您手中的代码 特别是,增加了:
$scope.params = [];
及
内部ModalController
。我还更改了声明控制器的方式:
var ModalController = function ($scope, $modal, $log) { ...
var ModalInstanceController = function ($scope, $modalInstance, params) { ...
基于您链接的示例
谢谢!它起作用了。。。但是对于学习部分。为什么我不能使用
[controllerObject].controller(通常为gularstuff)
来定义我的控制器?为什么我必须使用函数对象作为控制器?你所说的[controllerObject]是什么意思?在我最初的示例中,我为应用程序的控制器定义了一个angular.module
,然后使用controller
方法在该模块上定义控制器。为什么在模块上定义的控制器不能与引导模式的Angular UI一起工作,而原始函数工作得很好?您可以。我再次阅读了您的代码,发现有一些语义错误(例如,有时您同时编写了demoApp
和app
)。以下是角度控制器定义的固定代码
var ModalController = function ($scope, $modal, $log) { ...
var ModalInstanceController = function ($scope, $modalInstance, params) { ...