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