模态使用AngularJS无法打开,获取TypeError:undefined不是函数

时间:2014-10-03 04:15:45

标签: angularjs angular-ui-bootstrap

我试图使用Angular打开一个简单的模态。我希望它从"关于"链接在我的导航栏中。这是html:     

            <div ng-controller = "ModalDemoCtrl">
            <script type="text/ng-template" id="myModalContent.html">
                <div class="modal-header">
                    <h3 class="modal-title">I am a modal!</h3>
                </div>
                <div class="modal-body">
                    <h1>Welcome to my modal</h1>
                </div>
            </script>
            <ul class="nav navbar-nav">
                <li class="active"><a href="#" ng-click="open()">About</a></li>
            </ul>

        </div>

这是我的角色代码:

var app = angular.module('chucknorris', ['ngRoute', 'ui.bootstrap']);


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

    $scope.open = $modal.open({templateUrl:'myModalContent.html'});
}]);

我没有尝试处理或传递任何数据到模型中,所以我认为开放应该有效。我看了这个问题AngularJS $Modal itself is undefined,但我很确定我正确地包含了$ modal。我只需要一个模态打开,在bootstrap.js中它很容易。谢谢你的帮助。

*编辑* 这是我收到的完整错误消息:     在链接(http://youtoocanbechucknorris.com/js/ui-bootstrap.js:8:26380)     在U(http://youtoocanbechucknorris.com/js/angularmin.js:48:226)     在k(http://youtoocanbechucknorris.com/js/angularmin.js:42:309)     在U(http://youtoocanbechucknorris.com/js/angularmin.js:48:167)     在k(http://youtoocanbechucknorris.com/js/angularmin.js:42:309)     在U(http://youtoocanbechucknorris.com/js/angularmin.js:48:167)     在http://youtoocanbechucknorris.com/js/angularmin.js:53:483     在http://youtoocanbechucknorris.com/js/angularmin.js:64:351     在y(http://youtoocanbechucknorris.com/js/angularmin.js:89:187)     在y(http://youtoocanbechucknorris.com/js/angularmin.js:89:187

2 个答案:

答案 0 :(得分:1)

我的问题是我正在使用的Angular版本。我在6个月前使用的是Angular I的副本。当我下载最新版本时,一切正常。从文档angular-ui&#34;需要AngularJS 1.2.x,使用1.2.16&#34;进行测试。我使用的是1.2的早期版本,我认为它并不涵盖所有内容。 1.2.26的作品就像一个魅力。让自己保持最新状态可以节省我半天的工作时间。学过的知识。谢谢你的帮助。

答案 1 :(得分:0)

$scope.open = $modal.open({templateUrl:'myModalContent.html'});更改为

$scope.open = function() {
    $modal.open({templateUrl:'myModalContent.html'})
};