2017-02-17 6 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> 

Как-то значение, содержащееся в нг-модели становится тест Почему это происходит?

Метод в контроллере:

 $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

Как именно вы Э.Т./жала это? – deceze

+1

Наблюдение за контроллером также необходимо –

+1

Как называется функция 'login'? Вместо использования '$ scope.password' требуется параметр' 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 и передает его просто, чтобы убедиться, что он прошел правильно. Вы всегда можете decodingURIComponent() позже. – 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

Смежные вопросы