相关疑难解决方法(0)

如何使用AngularJS进行$ http同步调用

对不起,我的新手问题,但AngularJS文档不是非常明确或广泛,以找出一些基本的东西.

有没有办法与AngularJS进行同步调用?

在服务上:

myService.getByID = function (id) {
    var retval = null;

    $http({
        url: "/CO/api/products/" + id,
        method: "GET"
    }).success(function (data, status, headers, config) {

        retval = data.Data;

    });

    return retval;
}
Run Code Online (Sandbox Code Playgroud)

http angularjs

131
推荐指数
3
解决办法
20万
查看次数

当用户离开页面时在angularjs中显示警报

我是一个有角度的新蜜蜂.我正在尝试编写一个验证,在用户尝试关闭浏览器窗口时提醒用户.

我的页面v1和v2上有2个链接.当点击指向特定页面的链接时.这是重定向到v1和v2的代码

angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives'])

.config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/v1', {templateUrl: 'pages/v_1.html', controller: MyCtrl1});
        $routeProvider.when('/v2', {templateUrl: 'pages/v_2.html', controller: MyCtrl2});
        $routeProvider.otherwise({redirectTo: '/v1'});
}]);
Run Code Online (Sandbox Code Playgroud)

当用户点击v1"他即将离开v1,如果他想继续"并且点击v2时,我想弹出一条消息.任何关于如何实现这一点的指示将不胜感激.

我在这里得到了一个答案,但它会在每个时间间隔后弹出消息.

更新的代码;

控制器

function MyCtrl1() {
    $scope.$on('$locationChangeStart', function (event, next, current) {
        if ('your condition') {
            event.preventDefault();

            MessageService.showConfirmation(
                'Are you sure?',
            MessageService.MessageOptions.YES_NO, {
                'YES': function () {
                    blockNavigation = false;
                    $location.url($location.url(next).hash());
                    $rootScope.$apply();
                },
                'NO': function () {
                    MessageService.clear();
                    $log.log('NO Selected')
                }
            });
        }
    });
}
MyCtrl1.$inject = [];


function MyCtrl2() {}
MyCtrl2.$inject = …
Run Code Online (Sandbox Code Playgroud)

javascript model-view-controller angularjs angularjs-directive

58
推荐指数
4
解决办法
12万
查看次数

如何在onbeforeunload上执行ajax函数?

我正在开发一个php/javascript聊天.

当用户登录时,他/她的用户名将被插入名为的MySQL表中queue.此插入返回mysql_insert_id()将存储在名为的会话变量中$_SESSION['CHAT_QUEUE_ID']

当用户关闭页面时,我需要删除MySQL表行.

我尝试了以下,但没有成功:

js文件

window.onbeforeunload = closeSession;
function closeSession(){
    $.ajax({
        url: "/chat/process/chat.php",
        type: "GET"
    });
    return "disconnected";
}
Run Code Online (Sandbox Code Playgroud)

chat.php

$delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID'];
// query, etc
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

javascript php jquery onbeforeunload

10
推荐指数
1
解决办法
1万
查看次数