控制器进入AngularJS中的控制器

时间:2015-11-02 20:44:48

标签: javascript angularjs

我已经在使用Angular Bootstrap日历,它运行正常。我添加了一个显示模态的按钮,因此我可以使用ui.bootstrap.datepicker添加新事件。

当模态弹出时,我收到以下控制台消息:

"Error: [ng:areq] http://errors.angularjs.org/1.4.3/ng/areq?p0=DatepickerDemoCtrl&p1=not%20a            1.#QNAN0unction%2C%20got%20undefined

以下是我plunker(index.html)

中的代码示例
<body ng-cloak="" ng-app="demo">
    <div id="demo" ng-controller="MainCtrl as vm" class="row">

    <button class="btn btn-primary pull-right" ng-click="vm.eventCreateClicked(vm.events)">Add new event</button>

    <mwl-calendar> </mwl-calendar>    --> Calendar defined in here      


    <div ng-app="app" ng-controller="DatepickerDemoCtrl">
    <script type="text/ng-template" id="modalCreateEventContent.html">
      <div class="modal-body" id="modalEventCreate">
      </div>
    </script>
    </div> <!-- ng-controller -->

</div>        
</body>

我的添加新事件按钮调用demo.js中的eventCreateClicked函数

2 个答案:

答案 0 :(得分:1)

Angular中的嵌套应用are doable但是没有开箱即用,通常无法推荐。这种情况不是例外。嵌套的ng-app在这里也不会造成任何伤害,它只会被忽略。

DatepickerDemoCtrl属于ui.bootstrap.demo模块(不是app),因此ui.bootstrap.demo模块should be loaded in demo module

angular
  .module('demo', ['mwl.calendar', 'ui.bootstrap', 'ngTouch', 'ngAnimate', 'ui.bootstrap.demo'])

答案 1 :(得分:0)

您已嵌套ng-app。 AngularJS中不允许这样做。 您可以在页面上拥有多个相邻的应用程序,但是您必须明确地引导它们。见this answer