Javascript 如何使用Angularjs更改输入中输入的文本?

Javascript 如何使用Angularjs更改输入中输入的文本?,javascript,angularjs,encryption,Javascript,Angularjs,Encryption,有一项任务是实现文本加密。也就是说,我在一个字段中输入要加密的文本,在第二个字段中,按下按钮后,输出密文。但它不是那么有趣,我决定“实时”加密。我必须在第一个字段中只引入一个字符,然后他们在另一个字段中引入该字符的代码。我知道angular中有ng模型和ng绑定,可能需要编写一些函数来处理ng绑定? 尝试使用过滤器,例如 var-app=angular.module('plunker',[]); 应用程序控制器('MainCtrl',函数($scope){ $scope.inputText='

有一项任务是实现文本加密。也就是说,我在一个字段中输入要加密的文本,在第二个字段中,按下按钮后,输出密文。但它不是那么有趣,我决定“实时”加密。我必须在第一个字段中只引入一个字符,然后他们在另一个字段中引入该字符的代码。我知道angular中有ng模型和ng绑定,可能需要编写一些函数来处理ng绑定?

尝试使用过滤器,例如

var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.inputText='';
});
app.filter('cipher',function(){
返回函数(输入){
//密码转换不是将其包装在其中
返回“”+输入+“”;
}
});
模板:

<body ng-controller="MainCtrl">
  <input ng-model="inputText">
  <p>output: {{inputText | cipher }}</p>
</body>

输出:{inputText | cipher}}

您也可以在控制器上使用以下功能:

app.controller('MainCtrl', function($scope) {
  $scope.inputText = '';
  $scope.toCipher = function(someInput) {
    return '<fn_ciphered>' + someInput + '</fn_ciphered>';
  }
});
app.controller('MainCtrl',函数($scope){
$scope.inputText='';
$scope.toCipher=函数(someInput){
返回“”+someInput+“”;
}
});
和模板:

<body ng-controller="MainCtrl">
  <input ng-model="inputText">
  <p>output using function: <span ng-bind="toCipher(inputText)"></span></p>
</body>

使用函数的输出:


您可以创建一个指令来实现这一点。在输入中,必须插入指令:

<input encryp ng-model="model.input">
你可以在这里找到一个小例子:

在本例中,我的encryp函数将每个字符转换为
'*'

myApp.controller('MainCtrl', function($scope) {
  $scope.model = {input: ''};
  $scope.encryp = function(someInput) {
    var res = '';
    for(var i = 0; i < someInput.length; i++) {
      res += '*';
    }
    return res;
  }
});
myApp.controller('MainCtrl',函数($scope){
$scope.model={input:''};
$scope.encryp=函数(someInput){
var-res='';
for(var i=0;i
myApp.directive('encryp', function($parse) {
    return {
        restrict: 'EA',
        require: 'ngModel',
        link: function(scope, iElement, iAttrs, controller) {  
          scope.$watch(iAttrs.ngModel, function(value) {
                if (!value) {
                    return;
                }
                //Your encrypter function (if it's in $scope controller)
                var encryp_value = scope.encryp(value);

                controller.$setViewValue(encryp_value);
                controller.$render();

            });
        }
    };
});
myApp.controller('MainCtrl', function($scope) {
  $scope.model = {input: ''};
  $scope.encryp = function(someInput) {
    var res = '';
    for(var i = 0; i < someInput.length; i++) {
      res += '*';
    }
    return res;
  }
});