如何从Angular控制器调用JavaScript函数?

时间:2014-10-30 08:06:39

标签: angularjs angularjs-scope

如何从Angular控制器调用showNotification() JS函数?这是因为我使用的是一些插件,其中只包含该JS文件中的代码。

 authentication.controller('loginController', function($scope , $http ) {
 $http({
            method: 'POST',

            headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
            data: $.param(($scope.loginData)),

        }).success(function(data, status, headers, config)
            {
                if(data.status == "success"){
            }   
            else
            {
                alert("invalid credentials");
                 showNotification(){
                        message: "This is Auto Close notification. Message will close after 2 seconds",
                        autoClose: true,
                        duration: 2
                    }  //THIS IS JS FUNCTION
            }
            }).
            error(function(data, status, headers, config) {

                console.log("Login failed");
                 showNotification(){
                        message: "This is Auto Close notification. Message will close after 2 seconds",
                        autoClose: true,
                        duration: 2
                    }  //THIS IS JS FUNCTION
              }); 
 });

MY JS函数在单独的JS FILE

function showNotification(params){
  // Function Logic
}

2 个答案:

答案 0 :(得分:0)

只需添加插件的javascript文件即可。

要以正确的方式执行此操作,最好将插件包装在某个angularJS服务或指令中。

答案 1 :(得分:0)

请参阅演示http://plnkr.co/edit/unnI3qFBv2zah68MnTFj?p=preview

您必须确保在带有控制器的文件之前加载带有js功能的文件

var app = angular.module('app', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';

  $scope.show = function() {

    showNotification("Hello from Angular")

  }
});

....在其他js文件中的函数:

function showNotification(message){

  alert(message)

}