【问题标题】:error in angular js directive when open a modal打开模态时角度 js 指令中的错误
【发布时间】:2016-08-05 06:11:10
【问题描述】:

我在我的标题中使用自定义指令来打开登录模式,点击标题中的指令控制器中的功能(它工作正常并且模式打开成功)。在模态 html 中,当我单击登录时,我也有一个按钮(登录),它从指令调用另一个函数(RegistrationModal),但它抛出错误不是未打开,请检查代码

 .directive('header', function () {
    return {
        restrict: 'E',
        templateUrl: HTML.HEADER,
        scope: true,
        controller: function ($scope, $rootScope, $http, $templateCache,$compile) {
            $scope.RegistrationModal = function () {
              $(".modal").remove();
              $(".modal-backdrop").remove();
              $http.get(HTML.SIGN_UP, {cache: $templateCache}).success(function (data) {
                    $(document.body).append($compile(data)($scope));
                    $('#sign-up1').modal('show');
                });
            }
            $scope.loginModal = function () {
                if ($("#sign-up1").length > 0) {
                    $('#sign-up1').modal('hide');
                }
                console.log(">>>>>>>>>>>>in login")
                $http.get(HTML.LOGIN, {cache: $templateCache}).success(function (data) {
                    console.log(">>>>>>>>>>>...data is>>>>>.", data);
                    $(document.body).append($compile(data)($scope));
                    $('#login-popup').modal('show');
                });
            }

        },


    };
    return directive;
})

错误

angular.js:13708 TypeError: 无法将 undefined 或 null 转换为对象

【问题讨论】:

  • 能否请您发布一个 plunker 和详细的堆栈跟踪?这样会更好!
  • @Srijith......我想确认一件事。一旦我从指令调用 loginModal 函数并且该函数编译模板数据并将其附加到正文。我再次从同一指令调用 RegistrationModal 函数我应该破坏范围或其他任何东西
  • 如果你想在你的项目中使用modal,我推荐使用ui-bootstrap
  • @Emidomh..sorry 但这不是与模式相关的问题。这是我项目中的常见功能。我无法更改。

标签: javascript angularjs angularjs-directive modal-dialog


【解决方案1】:

HTML 对象是什么?您将其用作全局变量,因此它可能超出范围。

您应该注入所有诸如服务或常量之类的东西。

【讨论】:

  • .....HTML 对象是常量服务的一部分。问题与此无关...我认为当我再次绑定范围时,编译问题可能与此行有关 $( document.body).append($compile(data)($scope)) .
  • 那么这段摘录中的哪一行给出了错误? PS。你不应该同时使用 Angular 和 jQuery。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 2013-11-25
  • 1970-01-01
  • 2018-09-07
  • 2015-03-15
  • 1970-01-01
  • 2016-06-02
相关资源
最近更新 更多