Javascript 角度指令验证和解密
我试图构建一个指令,首先验证用户输入 验证输入后,我想用sha256散列字符串,并返回一个只包含加密输入的新模型 我知道这是一个奇怪的功能,但我有一位客户需要它: 以下是我的地址:Javascript 角度指令验证和解密,javascript,angularjs,angularjs-directive,cryptojs,Javascript,Angularjs,Angularjs Directive,Cryptojs,我试图构建一个指令,首先验证用户输入 验证输入后,我想用sha256散列字符串,并返回一个只包含加密输入的新模型 我知道这是一个奇怪的功能,但我有一位客户需要它: 以下是我的地址: 通过简化脚本解决了我的问题 app.directive('valiCrypt', function ($timeout) { var validateInput =function(input) { // Returns validation logic result here.
通过简化脚本解决了我的问题
app.directive('valiCrypt', function ($timeout) {
var validateInput =function(input) {
// Returns validation logic result here.
}
return {
restrict: 'A',
require: 'ngModel',
replace: true,
scope: {
vcModel: "=ngModel",
vcDuration: "@",
vcText: "@"
},
link: function (scope) {
if (!scope.vcDuration) {
scope.vcDuration = 0;
}
if (!scope.vcText) {
scope.vcText = "";
}
scope.$watch('vcModel', function (value) {
if (value) {
if (value.length === 11) {
var result = validateInput(value);
if (result) {
var copy = angular.copy(scope.vcModel);
scope.vcModel = scope.vcText;
$timeout(function () {
// <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js"></script>
copy = CryptoJS.SHA256(value);
scope.vcModel = copy;
}, scope.vcDuration, true);
}
}
}
});
}
};
});
@阿乔姆。代码没有任何问题,如果你阅读了这个问题,你可能会觉得我想扩展它,所以它返回一个加密字符串。
app.directive('valiCrypt', function ($timeout) {
var validateInput =function(input) {
// Returns validation logic result here.
}
return {
restrict: 'A',
require: 'ngModel',
replace: true,
scope: {
vcModel: "=ngModel",
vcDuration: "@",
vcText: "@"
},
link: function (scope) {
if (!scope.vcDuration) {
scope.vcDuration = 0;
}
if (!scope.vcText) {
scope.vcText = "";
}
scope.$watch('vcModel', function (value) {
if (value) {
if (value.length === 11) {
var result = validateInput(value);
if (result) {
var copy = angular.copy(scope.vcModel);
scope.vcModel = scope.vcText;
$timeout(function () {
// <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js"></script>
copy = CryptoJS.SHA256(value);
scope.vcModel = copy;
}, scope.vcDuration, true);
}
}
}
});
}
};
});