Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有时ng单击don';我不能在爱奥尼亚工作_Javascript_Angularjs_Ionic - Fatal编程技术网

Javascript 有时ng单击don';我不能在爱奥尼亚工作

Javascript 有时ng单击don';我不能在爱奥尼亚工作,javascript,angularjs,ionic,Javascript,Angularjs,Ionic,我是新来的爱奥尼亚和安格拉斯。目前,正在开发一个应用程序&卡在某个点上。不知道如何解决这个问题 我有一张登录表。用户登录应用程序后,他/她将登陆主页。在主页上,我有一张图片。在那张图片上,我使用了ng click。所以,单击该图像,它会将用户重定向到其他页面。在这里,我面临着一个问题&这个问题是在登录之后,当我来到主页时,单击该图像时,ng click根本不起作用。但是,一旦我刷新浏览器并单击该图像,请单击开始工作。我不知道为什么会发生这样的事情 这是我正在使用的所有文件。我在1.7.12中使用

我是新来的爱奥尼亚和安格拉斯。目前,正在开发一个应用程序&卡在某个点上。不知道如何解决这个问题

我有一张登录表。用户登录应用程序后,他/她将登陆主页。在主页上,我有一张图片。在那张图片上,我使用了ng click。所以,单击该图像,它会将用户重定向到其他页面。在这里,我面临着一个问题&这个问题是在登录之后,当我来到主页时,单击该图像时,ng click根本不起作用。但是,一旦我刷新浏览器并单击该图像,请单击开始工作。我不知道为什么会发生这样的事情

这是我正在使用的所有文件。我在1.7.12中使用的离子版本

app.js

(function(){

    var app = angular.module('e2pro', ['ionic', 'e2pro.LoginController', 'e2pro.HomeController', 'e2pro.AttendanceController', 'e2pro.LogoutController','e2pro.MenuController','e2pro.EmpProfileController','e2pro.EmpSearchController', 'e2pro.VendorController', 'ngMessages', 'ngCordova', 'angularMoment']);

    var requestToken    = "";
    var accessToken     = "";
    var deviceToken     = null;
    var access_token    = null;
    var refresh_token   = null;
    var session_id      = null;
    var user_id         = null;
    var user_login_type = null;
    var route_to        = null;

    app.run(function($ionicPlatform, RequestsService, GeoAlert) {
        $ionicPlatform.ready(function() {
            // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
            // for form inputs)
            if (window.cordova && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
                cordova.plugins.Keyboard.disableScroll(true);
            }
            if (window.StatusBar) {
                // org.apache.cordova.statusbar required
                StatusBar.styleDefault();
            }

            console.log('inside app.run function');
        });

    });


    // Service for logout user from app
    app.factory("User", function($http, $q, $rootScope, $ionicHistory, $state) {
        return {
            logout: function(){
                window.localStorage.clear();
                $ionicHistory.clearCache();
                $ionicHistory.clearHistory();
                $ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });

                $state.go("login");
            }
        }
    });


    app.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
        $stateProvider

        .state('app', {
            url: '/app',
            abstract: true,
            templateUrl: 'templates/menu.html',
            controller: 'MenuController'
        })

        .state('app.tabs', {
            url: "/tabs",
            views: {
                'menuContent': {
                    templateUrl: "templates/tabs.html",
                }
            }
        })

        .state('login', {
            url: "/login",
            templateUrl: "templates/login.html",
            //controller: 'LoginController'
        })

        .state('markEmpAttendance', {
            url: "/markEmpAttendance",
            templateUrl: "templates/attendance/markEmpAttendance.html",
            //controller: 'AttendanceController'
        })

        .state('app.tabs.home', {
            url: '/home',
            views: {
                'home-tab': {
                    templateUrl: 'templates/home.html',
                }
            }
        })

        .state('app.tabs.emp-profile', {
            url: '/emp-profile/:empId',
            views: {
                'home-tab': {
                    templateUrl: 'templates/empProfile.html',
                    //controller: 'EmpProfileController'
                }
            }
        })

        .state('app.tabs.vendor', {
            url: '/vendor',
            views: {
                'home-tab': {
                    templateUrl: 'templates/vendor/vendor.html',
                    //controller: 'EmpProfileController'
                }
            }
        })

        .state('app.tabs.emp-search', {
            url: '/emp-search',
            views: {
                'home-tab': {
                    templateUrl: 'templates/empSearch.html',
                    //controller: 'EmpProfileController'
                }
            }
        })

        .state('app.tabs.service-request', {
            url: "/articles",
            views: {
                'serviceRequest-tab': {
                    templateUrl: "templates/serviceRequest.html",
                    controller: 'articlesCtrl'
                }
            }
        })

        .state('app.tabs.colonies', {
            url: "/colonies",
            views: {
                'colonies-tab': {
                    templateUrl: "templates/colonies.html",
                    controller: 'coloniesCtrl'
                }
            }
        })

        .state('app.foo', {
            url: "/foo",
            views: {
                'menuContent': {
                    templateUrl: "templates/foo.html",
                    controller: 'fooCtrl'
                }
            }
        });

        $urlRouterProvider.otherwise('/app/tabs/home');
        $httpProvider.interceptors.push('sessionInjector');
    });

}());
login.js(控制器文件)

Home.html(模板文件)


小贩
上校
上校

有时ng click在cordova中不起作用。尝试使用
onclick=“showVendorPage()”
Hi谢谢您的回复。我找到了发生这件事的原因,但我不知道整件事是怎么发生的。现在的情况是,像home Controller一样,我还有一个控制器用于侧菜单(Menu.js)。我所做的是,在Menu.js控制器文件中复制相同的函数
showVendorPage()
。然后它开始工作了。不需要刷新页面。因此,在登录后,
showVendorPage()
函数从Menu.js文件开始工作&刷新页面后,它从Home.js文件开始工作。但是,为什么这个范围会发生这样的变化,我无法理解。
angular.module('e2pro.LoginController', [])

// Employee Attendance Controller
.controller('LoginController', function($http, $scope, $state, $ionicHistory, $ionicLoading, $cordovaOauth, RequestsService){
    console.log('Inside Login Controller');

    var baseUrl=null;

    $scope.credentials = {};
    $scope.validationFailed = false;

    $http.get('js/config.json')
            .then(function(res){
                baseUrl = res.data.server[res.data.mode];
            });


    // Method for user's default login
    $scope.validateCredentials = function(form){
        console.log('Form Validation start for login : '+form.$valid);
        var attendance_require = null;
        var emp_attendance_status = null;

        // Setting module data element for the api request
        $scope.credentials.module = 'user_login';
        $scope.credentials.pageId = 1548;

        // Check form validation status & move control accordingly
        if(!form.$valid)
        {
            return false;
        }

        // Show spinner animation
        $ionicLoading.show({
            template: '<ion-spinner icon="android"></ion-spinner>'
        });

        $http({
            method: 'POST',
            url: baseUrl+'/S/E2Pro_MobileApiEndPoint.php',
            data : $scope.credentials
        }).then(function successCallback(response) {
                if(response['data']['status'] === 'success')
                {
                    session_id    = response['data']['data']['session_id'];
                    user_id       = response['data']['data']['user_id'];
                    route_to      = response['data']['data']['route_to'];
                    attendance_require = response['data']['data']['attendance_require'];
                    emp_attendance_status = response['data']['data']['emp_attendance_status'];

                    window.localStorage.setItem("session_id", session_id);
                    window.localStorage.setItem("user_id", user_id);
                    window.localStorage.setItem("user_login_type", 'default');

                    // Hide Spinner before redirecting to home page
                    $ionicLoading.hide();

                    // Redirecting to home page
                    if(route_to === 'home'){
                        $state.go('app.tabs.home');
                        return false;
                    }
                }
                else
                {
                    // Hide Spinner before redirecting to home page
                    $ionicLoading.hide();

                    // Show message for email id & password miss match
                    $scope.validationFailed = true;
                }

            }, function errorCallback(response) {
                // console.log('Error occcur during user authentication');

                // Hide Spinner before redirecting to home page
                $ionicLoading.hide();
            });
    };

});
angular.module('e2pro.HomeController', [])

// Employee Attendance Controller
.controller('HomeController', function($scope, $state, $location, $ionicHistory, $ionicSideMenuDelegate, $http, $ionicPopup, User, GeoAlert){

    console.log('Inside Home Controller');
    var baseUrl=null;

    // Check application session. If it's found not exist redirect user to login page
    if(window.localStorage.getItem("session_id") === "undefined" || window.localStorage.getItem("session_id") === null) {
        $ionicHistory.nextViewOptions({
            disableAnimate: true,
            disableBack: true
        });

        $state.go("login");
        return false;
    }

    $scope.empName               = '';
    $scope.alertMsgBox           = false;
    $scope.alertMsgText          = '';
    $scope.employees             = [];

    $http.get('js/config.json')
            .then(function(res){
                baseUrl = res.data.server[res.data.mode];
            });

    // Method for showing Vendor page
    $scope.showVendorPage = function(){
        console.log('Clicked on vendor icon');
        $state.go('app.tabs.vendor');
    }

});
<ion-view view-title="Home">
    <ion-content class="has-tabs">

        <div ng-controller='HomeController' >
            <div class="row" style="margin-top:15px;">
                <div class="col">
                    <img src="img/leave.png" ng-click="showVendorPage()">
                    <h5>Vendor</h5>
                </div>
                <div class="col">.col</div>
                <div class="col">.col</div>
            </div>
        </div>

    </ion-content>
</ion-view>