javascript - 从模态调用 AngularJS Promise 会导致错误

标签 javascript jquery angularjs angular-ui-bootstrap bootstrap-modal

我目前正在尝试在 AngularJS 中创建某种模式对话框来登录用户。因此我使用官方ui-bootstrap上的模板创建了一个小例子页。为了对用户进行身份验证,凭据将发送到 REST 服务。为了简单起见,我使用了一个虚拟对象来模拟 http 调用。接收到的数据应该传递回调用模式对话框的 Controller ,但不知何故我的处理不起作用,并且我收到一个错误,表明以下代码是错误的:

testLoginService.loginUser(user.name, user.pass)
    .then(function (sessionId){
        user.session = sessionId;  
    });

这是控制台中发生的错误:

Error: testLoginService.loginUser(...) is undefined
$scope.ok@http://localhost:8080/LoginModal/example.js:32:2
Parser.prototype.functionCall/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:10567:15
ngEventDirectives[directiveName]</<.compile/</</<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:18627:17
$RootScopeProvider/this.$get</Scope.prototype.$eval@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:12412:16
$RootScopeProvider/this.$get</Scope.prototype.$apply@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:12510:18
ngEventDirectives[directiveName]</<.compile/</<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:18626:15
createEventHandler/eventHandler/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:2780:7
forEach@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:330:11
createEventHandler/eventHandler@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:2779:5

Here是我在 plunkr 上的代码。是什么导致我的代码出现错误以及如何修复它?最后,我想处理从 loginService 接收到的数据,并在用户界面上显示 sessionID 或其他用户特定的数据。

提前致谢

最佳答案

尝试以下操作,

使用回调函数

testLoginService.loginUser(user.name, user.pass,function (data){
        user.session = data.id;  
    });

ajax请求

    this.loginUser = function(user, password,callback)
{

    var wsUrl = "http://jsonplaceholder.typicode.com/posts";

    var soapRequest = {
                    title: user,
                    body: password,
                    userId: 1
    }

    var config = {
                headers : {

                }
            }

    $http.post(wsUrl, soapRequest, config)
    .success(callback)
    .error(function (data, status, header, config) {
        alert(req.responseText + " " + status);
    })

    };

演示:http://plnkr.co/edit/ucibA2X7s40BdxhOQ0K2?p=preview

关于javascript - 从模态调用 AngularJS Promise 会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38739565/

相关文章:

javascript - 带有 Razor 表达式的 ng-init

php - jquery php 问题

javascript - 使用 alethes 进行分页 :pages using a subscription

c# - 我们可以在 Windows 应用程序中使用 Jquery 吗?

c# - .net 滑入式菜单

javascript - 如何自动增长具有可变字体大小的文本框

javascript - 避免在 firefox Protractor 中的多个测试文件中进行一个测试

angularjs - Ionic-单击标题按钮未获取表单数据

javascript - XMLHttpRequest.open 方法的 async 属性的 javascript 默认值是多少?

javascript - 删除评论而不刷新页面