在angularjs控制器中创建新函数将不起作用

在angularjs控制器中创建新函数将不起作用,angularjs,Angularjs,在angularjs控制器中创建新功能并通过ng单击将其分配给按钮时,功能非常简单 function toLogin() { console.log("Entered function"); $state.go('login'); } 我尝试了$scope,但仍然不起作用。 这是我的控制器: 'use strict'; 角度。模块'crudap'。控制器'UserController', ['UserService','$scope','$state',函数UserServi

在angularjs控制器中创建新功能并通过ng单击将其分配给按钮时,功能非常简单

function toLogin() {
    console.log("Entered function");
    $state.go('login');
}
我尝试了$scope,但仍然不起作用。 这是我的控制器:

'use strict';
角度。模块'crudap'。控制器'UserController', ['UserService','$scope','$state',函数UserService,$scope,$state{

    var self = this;
    self.user = {};
    self.users=[];
    self.user.enabled = false;
    self.user.confirmationToken = '';
    self.loggedUser = null;
    self.submit = submit;
    self.getAllUsers = getAllUsers;
    self.createUser = createUser;
    self.updateUser = updateUser;
    self.removeUser = removeUser;
    self.editUser = editUser;
    self.reset = reset;
    self.firstNamePattern=/^[A-Z][a-z]*\S$/;
    self.lastNamePattern=/^[A-Z][a-z]*\S$/;
    self.userNamePattern= /^\S*$/;
    self.passwordPattern = /^\S*$/;
    self.phonePattern = /^[0-9]+\S$/;
    self.successMessage = '';
    self.errorMessage = '';
    self.done = false;

    self.onlyIntegers = /^\d+$/;
    self.onlyNumbers = /^\d+([,.]\d+)?$/;
    function toLogin() {
        console.log('Entered function');
       // $state.go('login');
    }
    function submit() {
        console.log('Submitting');
        if (self.user.id === undefined || self.user.id === null) {
            console.log('Saving New User', self.user);
            createUser(self.user);
        } else {
            updateUser(self.user, self.user.id);
            console.log('User updated with id ', self.user.id);
        }
    }
    $scope.moje = function () {
        console.log('Submitting');
        if (self.user.id === undefined || self.user.id === null) {
            console.log('Saving New User', self.user);
            createUser(self.user);
        } else {
            updateUser(self.user, self.user.id);
            console.log('User updated with id ', self.user.id);
        }
    }

    function createUser(user) {
        console.log('About to create user');
        UserService.createUser(user)
            .then(
                function (response) {
                    console.log('User created successfully');
                    self.successMessage = 'User created successfully';
                    self.errorMessage='';
                    self.done = true;
                    self.user={};
                    $scope.registerForm.$setPristine();
                    $scope.registerForm.$setUntouched();
                   // $state.reload();

                },
                function (errResponse) {
                    console.error('Error while creating User');
                    self.errorMessage = 'Error while creating User: ' + errResponse.data.errorMessage;
                    self.successMessage='';
                }
            );
    }


    function updateUser(user, id){
        console.log('About to update user');
        UserService.updateUser(user, id)
            .then(
                function (response){
                    console.log('User updated successfully');
                    self.successMessage='User updated successfully';
                    self.errorMessage='';
                    self.done = true;
                    $scope.myForm.$setPristine();
                },
                function(errResponse){
                    console.error('Error while updating User');
                    self.errorMessage='Error while updating User '+errResponse.data;
                    self.successMessage='';
                }
            );
    }


    function removeUser(id){
        console.log('About to remove User with id '+id);
        UserService.removeUser(id)
            .then(
                function(){
                    console.log('User '+id + ' removed successfully');
                },
                function(errResponse){
                    console.error('Error while removing user '+id +', Error :'+errResponse.data);
                }
            );
    }


    function getAllUsers(){
        return UserService.getAllUsers();
    }

    function editUser(id) {
        self.successMessage='';
        self.errorMessage='';
        UserService.getUser(id).then(
            function (user) {
                self.user = user;
            },
            function (errResponse) {
                console.error('Error while removing user ' + id + ', Error :' + errResponse.data);
            }
        );
    }
    function reset(){
        self.successMessage='';
        self.errorMessage='';
        self.user={};
        $scope.myForm.$setPristine(); //reset Form
    }
}


]);
我使用ui路由,这是我为视图分配控制器的地方:

}).state('success',{
                url: '/success',
                templateUrl: 'partials/successMessage',
                controller: 'UserController',
                controllerAs: 'sCtrl'
            });
代码的ftl部分如下所示:

<button type="button" ng-click='sCtrl.toLogin()' class="btn btn-primary">Login</button> 
它甚至不会打印到控制台,但当分配旧功能时,它工作得很好,尽管它要复杂得多。Ps。首先,很抱歉澄清得不好,我是新加入社区的,仍然在学习提问的正确方法。

您需要使用$scope

$scope.toLogin = function(){
 console.log("Entered function");
 $state.go('login');
}

要做到这一点,您没有将该方法注册到控制器。 在下面的self.onlyNumbers中添加此项

self.toLogin = toLogin;

我们需要在上下文中看到这一点,以帮助您。发布控制器中包含此功能的相关部分,以及如何使用此控制器,尤其是view@lealceldeiro虽然在大多数情况下你是对的,但这个问题的问题从他提供的代码中是显而易见的,并且可以很容易地得到回答,Sajeetharan did.@BShaps,请在Sajeetharan的评论中看到OP的评论。这就是为什么我选择不假设OP一开始没有发布的内容。这个问题是AngularJS框架中最基本的概念。请在问这样的问题之前搜索!我是社区的新手,很抱歉澄清得不好,我是在Sajeetharan wa上做的一开始是的。在我看来,旧的函数可以正常工作,但我编写的每一个新函数,即使是很小的函数也不能正常工作。但其他函数没有$scope,它们工作正常。起初我尝试使用$scope,但它不工作。我的浏览器正确加载了我的js文件。我将此函数放入我的控制器中,它可以100%工作,结果是不起作用。即使我复制了一个有效的函数,只是更改了它的名称,它也不会起作用。用Plunkers重现这个问题这么简单的问题不应该得到回答。