Angularjs TypeError:providedScope.$new不是函数-角度引导模式

Angularjs TypeError:providedScope.$new不是函数-角度引导模式,angularjs,angular-ui-bootstrap,bootstrap-modal,meanjs,Angularjs,Angular Ui Bootstrap,Bootstrap Modal,Meanjs,我一直在遵循官方指南,但仍然会出错。上的一个用户遇到了相同的问题,但没有提到如何解决,只是他的代码调用他的工厂时出错,我无法从他的代码中找出任何东西 控制器: function ActivitiesController($scope, $state, $window, Authentication, activity, $uibModal, $uibModalInstance) { var vm = this; vm.authentication = Authenticatio

我一直在遵循官方指南,但仍然会出错。上的一个用户遇到了相同的问题,但没有提到如何解决,只是他的代码调用他的工厂时出错,我无法从他的代码中找出任何东西

控制器:

function ActivitiesController($scope, $state, $window, Authentication, activity, $uibModal, $uibModalInstance) {
    var vm = this;

    vm.authentication = Authentication;
    vm.activity = activity;
    vm.openModal = openModal;
    vm.okOnModal = okOnModal;
    vm.cancelOnModal = cancelOnModal;

    function openModal() {
        $uibModal.open({
            template: "<div class='modal-header'>"
                        + "<h3 class='modal-title' id='modal-title'>Friends</h3>"
                    + "</div>"
                    + "<div class='modal-body list-group' id='modal-body'>"
                        + "<a ng-repeat='friend in vm.friends' class='list-group-item'>"
                            + "<img class='friend-user-profile-picture' ng-src='{{ friend.friend.profileImageURL }}' alt='{{ friend.friend.displayName }}'>"
                            + "<h4 class='list-group-item-heading' ng-bind='friend.friend.displayName'></h4>"
                            + "<small class='list-group-item-text' ng-bind='friend.friend.username'></small>"
                            + "<p class='list-group-item-text' ng-bind='friend.friend.email'></p>"
                            + "<input type='checkbox'>"
                        + "</a>"
                    + "</div>"
                    + "<div class='modal-footer'>"
                        + "<button class='btn btn-primary' type='button' ng-click='vm.okOnModal()'>OK</button>"
                        + "<button class='btn btn-warning' type='button' ng-click='vm.cancelOnModal()'>Cancel</button>"
                    + "</div>",
            size: 'lg',
            scope: vm
        });
    }

    function okOnModal() {
        $uibModalInstance.close();
    }

    function cancelOnModal() {
        $uibModalInstance.dismiss('cancel');
    }
}
<button class="btn btn-primary btn-lg" ng-click="vm.openModal()">Share with...</button>
依赖关系:

function ActivitiesController($scope, $state, $window, Authentication, activity, $uibModal, $uibModalInstance) {
    var vm = this;

    vm.authentication = Authentication;
    vm.activity = activity;
    vm.openModal = openModal;
    vm.okOnModal = okOnModal;
    vm.cancelOnModal = cancelOnModal;

    function openModal() {
        $uibModal.open({
            template: "<div class='modal-header'>"
                        + "<h3 class='modal-title' id='modal-title'>Friends</h3>"
                    + "</div>"
                    + "<div class='modal-body list-group' id='modal-body'>"
                        + "<a ng-repeat='friend in vm.friends' class='list-group-item'>"
                            + "<img class='friend-user-profile-picture' ng-src='{{ friend.friend.profileImageURL }}' alt='{{ friend.friend.displayName }}'>"
                            + "<h4 class='list-group-item-heading' ng-bind='friend.friend.displayName'></h4>"
                            + "<small class='list-group-item-text' ng-bind='friend.friend.username'></small>"
                            + "<p class='list-group-item-text' ng-bind='friend.friend.email'></p>"
                            + "<input type='checkbox'>"
                        + "</a>"
                    + "</div>"
                    + "<div class='modal-footer'>"
                        + "<button class='btn btn-primary' type='button' ng-click='vm.okOnModal()'>OK</button>"
                        + "<button class='btn btn-warning' type='button' ng-click='vm.cancelOnModal()'>Cancel</button>"
                    + "</div>",
            size: 'lg',
            scope: vm
        });
    }

    function okOnModal() {
        $uibModalInstance.close();
    }

    function cancelOnModal() {
        $uibModalInstance.dismiss('cancel');
    }
}
<button class="btn btn-primary btn-lg" ng-click="vm.openModal()">Share with...</button>
  • 角度:
    1.4.8
    (从
    0.3升级)
  • 角度引导:
    2.4.0
    (从
    0.13.4
    升级)
  • 引导:
    3.3.7
  • MEAN.JS:
    0.4.2
阅读MEAN.JS文档时,
0.4.2
使用角度ui
0.13.4
,它不支持
$uibModal
。因为不支持它,所以我升级到
2.4.0
。没有提到MEAN.JS
0.4.2
不支持angular ui
2.4.0
,但这可能是潜在的原因吗?


编辑:

function ActivitiesController($scope, $state, $window, Authentication, activity, $uibModal, $uibModalInstance) {
    var vm = this;

    vm.authentication = Authentication;
    vm.activity = activity;
    vm.openModal = openModal;
    vm.okOnModal = okOnModal;
    vm.cancelOnModal = cancelOnModal;

    function openModal() {
        $uibModal.open({
            template: "<div class='modal-header'>"
                        + "<h3 class='modal-title' id='modal-title'>Friends</h3>"
                    + "</div>"
                    + "<div class='modal-body list-group' id='modal-body'>"
                        + "<a ng-repeat='friend in vm.friends' class='list-group-item'>"
                            + "<img class='friend-user-profile-picture' ng-src='{{ friend.friend.profileImageURL }}' alt='{{ friend.friend.displayName }}'>"
                            + "<h4 class='list-group-item-heading' ng-bind='friend.friend.displayName'></h4>"
                            + "<small class='list-group-item-text' ng-bind='friend.friend.username'></small>"
                            + "<p class='list-group-item-text' ng-bind='friend.friend.email'></p>"
                            + "<input type='checkbox'>"
                        + "</a>"
                    + "</div>"
                    + "<div class='modal-footer'>"
                        + "<button class='btn btn-primary' type='button' ng-click='vm.okOnModal()'>OK</button>"
                        + "<button class='btn btn-warning' type='button' ng-click='vm.cancelOnModal()'>Cancel</button>"
                    + "</div>",
            size: 'lg',
            scope: vm
        });
    }

    function okOnModal() {
        $uibModalInstance.close();
    }

    function cancelOnModal() {
        $uibModalInstance.dismiss('cancel');
    }
}
<button class="btn btn-primary btn-lg" ng-click="vm.openModal()">Share with...</button>
我已经排除了依赖版本的问题,因为我已经更改回MEAN.JS堆栈中“0.4.2”附带的默认版本(因此使用
$modal
而不是
$uibModal
),我得到了一个类似的错误:

TypeError:(modalOptions.scope | |$rootScope)。$new不是函数


vm
作为模式的父范围提供。这就是问题所在,因为
vm
不是作用域。它是当前作用域上的控制器实例和对象(如果使用了
controllerAs
语法)

vm
不应与
$scope
互换。应该是:

scope: $scope

vm
作为模式的父范围提供。这就是问题所在,因为
vm
不是作用域。它是当前作用域上的控制器实例和对象(如果使用了
controllerAs
语法)

vm
不应与
$scope
互换。应该是:

scope: $scope

是的,我在你发帖子之前就知道了,但我会接受,因为这是正确的答案。非常感谢。是的,我在你发帖子之前就知道了,但我会接受,因为这是正确的答案。非常感谢。