【问题标题】:add sweet alert angular js添加甜蜜警报角度js
【发布时间】:2015-08-19 19:53:41
【问题描述】:

我是 AngularJS 的新手,我正在尝试使用来自 https://github.com/oitozero/ngSweetAlert 的甜蜜警报插件,我已经将相应的脚本添加到我的 index.html 中,如下所示:

index.html

<link rel="stylesheet" href="bower_components/sweetalert/dist/sweetalert.css">
<script src="bower_components/angular-sweetalert/SweetAlert.min.js"></script>
<script src="bower_components/sweetalert/dist/sweetalert.min.js"></script>

正如文档所说。现在在我的 ctrl.js 我有这个:

var ctrl = function ($scope, SweetAlert) {

    SweetAlert.swal("Here's a message"); // this does not work
}

ctrl.$inject = ['$scope', 'oitozero.ngSweetAlert];

angular.module('myApp.missolicitudes.controllers',
    [
       'oitozero.ngSweetAlert'
    ])
    .controller('MiSolicitudCtrl', ctrl);

但无法正常工作,在我的浏览器上,我从开发人员工具中收到此错误:

错误:[$injector:unpr] http://errors.angularjs.org/1.4.3/$injector/unpr?p0=oitozero.ngSweetAlertProvider%20%3C-""itozero.ngSweetAlert%20%3C-%20MiSolicitudCtrl 在错误(本机) 在http://localhost:8081/assets/libs/angular/angular.min.js:6:416http://localhost:8081/assets/libs/angular/angular.min.js:40:375 在 Object.d [as get] (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) 在http://localhost:8081/assets/libs/angular/angular.min.js:40:449 在 d (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) 在 e (http://localhost:8081/assets/libs/angular/angular.min.js:39:124) 在 Object.instantiate (http://localhost:8081/assets/libs/angular/angular.min.js:39:273) 在 $get (http://localhost:8081/assets/libs/angular/angular.min.js:80:228) 在链接 (http://localhost:8081/assets/libs/angular/angular-route.min.js:7:268)

如何正确实现这个插件?

更新 1

我已经尝试过@Pankaj Parkar 和@Mike G 的这个建议

ctrl.$inject = ['$scope', 'oitozero.ngSweetAlert'];

像这样

ctrl.$inject = ['$scope', 'SweetAlert'];

我的开发者工具抛出这个消息:

Error: [$injector:unpr] http://errors.angularjs.org/1.4.3/$injector/unpr?p0=oitozero.ngSweetAlertProvider%20%3C-"<div class="container ng-scope" ng-view="">"itozero.ngSweetAlert%20%3C-%20MiSolicitudCtrl
at Error (native)
at http://localhost:8081/assets/libs/angular/angular.min.js:6:416
at http://localhost:8081/assets/libs/angular/angular.min.js:40:375
at Object.d [as get] (http://localhost:8081/assets/libs/angular/angular.min.js:38:364)
at http://localhost:8081/assets/libs/angular/angular.min.js:40:449
at d (http://localhost:8081/assets/libs/angular/angular.min.js:38:364)
at e (http://localhost:8081/assets/libs/angular/angular.min.js:39:124)
at Object.instantiate (http://localhost:8081/assets/libs/angular/angular.min.js:39:273)
at $get (http://localhost:8081/assets/libs/angular/angular.min.js:80:228)
at link (http://localhost:8081/assets/libs/angular/angular-route.min.js:7:268)

【问题讨论】:

    标签: angularjs sweetalert


    【解决方案1】:

    这是我为使 SweetAlert 工作而编写的一个简单模块。

     // sweetalert.js
    
     angular
      .module('sweetalert', [])
      .factory('swal', SweetAlert);
    
    function SweetAlert() {
      return window.swal;
    };
    

    因此,无需使用任何其他库即可使用 sweetalert,只需编写自己的即可。

    只需将模块注入到您要使用它的控制器中。

    示例

    angular
      .module('demo', ['sweetalert'])
      .controller('DemoController', DemoController);
    
    function DemoController($scope) {
      $scope.btnClickHandler = function() {
        swal('Hello, World!');
      };
    };
    

    以下是咖啡脚本中的示例要点:https://gist.github.com/pranav7/d075f7cd8263159cf36a

    【讨论】:

      【解决方案2】:

      我得到了它的工作,通过在模块中注入它。

      我的ctrl.js就是这样

      ctrl.$inject = ['$scope'];
      

      在我的控制器内部,你可以这样称呼它

      var ctrl = function ($scope) {
          swal("Here's a message");
      }
      

      它有效!,我不知道是否正确的方法......但至少有效。

      【讨论】:

      【解决方案3】:

      注入 sweetalert.min.jssweetalert.css。 在您的控制器中像此代码一样使用

      swal({
              type: "error",
              title: "Error!",
              text: "fail",
              confirmButtonText: "OK"
            });
      

      `

      【讨论】:

        【解决方案4】:

        永远不要将module 作为依赖注入到controller。您应该在那里注入SweetAlert factory,它具有显示警报的各种功能。还要在工厂注入中添加缺少的' qoute。

        你应该使用

        ctrl.$inject = ['$scope', 'SweetAlert'];//<==`oitozero.ngSweetAlert` module               
                                                    //could be injectable inside your app module.
        

        Demo Plunkr

        【讨论】:

        • @LuisFelipeGarcia 你能看看我更新的答案吗..它也有工作 plunkr
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 2023-03-20
        • 2022-08-06
        • 2018-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多