2017-02-17 98 views
1

比方说,我有一个用户密码为te/st。 而这个标记:密码字段从密码中删除'/'字符

<input type="password" class="form-control" placeholder="Password" ng-model="password" required> 
<button class="btn btn-lg btn-primary btn-block" type="submit" ng-click="login(username, password)">Sign in</button> 

不知何故,包含在NG-模型中的价值变得测试 这究竟是为什么?

在控制器的方法:

 $scope.login = function (username, password) { 
       console.log("pass:", password); 
       authService.login(username, password).then(function() { 

        console.log("auth success. username: ", username); 
       }, 
       function() { 
        notifications.showError("Login failed!"); 

       }); 
      }; 
+7

究竟你是如何TE /刺痛呢? – deceze

+1

看到控制器也是必要的 –

+1

如何调用'login'函数?它使用参数'password'而不是'$ scope.password'。我只是在这里猜测,因为你没有共享完整的代码 –

回答

1

这plunkr显示它实际工作 - 斜杠字符显示出来: https://plnkr.co/edit/tSVFtmSILTR606AZrdH1?p=preview

下面是测试整个代码:

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
</head> 
<body> 
<input type="password" class="form-control" placeholder="Password" ng-model="password" required id="pwd"> 
<button onclick="alert(document.getElementById('pwd').value)">click</button> 
</body> 
</html> 

如果你在箱子里输入te/st并点击按钮,你会看到:

plnkr password

+1

你说得对。在另一个环境中起作用。 – VictorB

+0

@VictorB尝试这是一个测试: 呼叫encodeURIComponent方法(密码) - 它会转换密码(TE/ST)对TE%2ST,并传递它只是为了看它是否正确地传递。随后可以随时decodeURIComponent()。 – raddevus

1

我无法复制它。如果必须使用下面的代码。

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

 
app.controller('ctrl', function($scope) { 
 
    $scope.login = function(username, password){ 
 
    $scope.passedUserName = username; 
 
    $scope.passedPassword = password; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" /> 
 

 
<body ng-app="app" ng-controller="ctrl"> 
 
    <br/> 
 
    <div class="col-lg-12"> 
 
    <div class="form-group row"> 
 
     <label for="example-text-input" class="col-2 col-form-label">User Name</label> 
 
     <div class="col-10"> 
 
     <input type="text" class="form-control" placeholder="Username" ng-model="username" required> 
 
     </div> 
 
    </div> 
 
    <div class="form-group row"> 
 
     <label for="example-text-input" class="col-2 col-form-label">Password</label> 
 
     <div class="col-10"> 
 
     <input type="password" class="form-control" placeholder="Password" ng-model="password" required> 
 
     </div> 
 
    </div> 
 
    <div class="form-group row"> 
 
     <label for="example-text-input" class="col-2 col-form-label">Value</label> 
 
     <div class="col-10"> 
 
     <input type="text" class="form-control" placeholder="Entered Password" ng-model="password" required> 
 
     </div> 
 
    </div> 
 

 
    <button class="btn btn-lg btn-primary btn-block" type="submit" ng-click="login(username, password)">Sign in</button> 
 
    </div> 
 
    <div> 
 
    <p>Passed Username: {{passedUserName}}</p> 
 
    <p>Passed Password: {{passedPassword}}</p> 
 
    </div> 
 
</body>

+0

你说得对。在另一个环境中起作用。 – VictorB

+0

如果是这种情况,那么你可以创建一个plunkr来显示问题。这很有趣。你在使用什么环境? – Alok