【发布时间】:2017-05-10 17:52:51
【问题描述】:
我正在以可以在多个页面中访问的方式实现指令。我的要求是,当我按住任何键时(截至目前),我需要显示密码。密码详细信息将来自控制器。我需要更新指令中的密码。
在 keydown 事件中,我想将密码显示为 hello,在 keyup 上,我想将密码显示为 ********。
下面是代码:
HTML 视图
<div ng-app="myApp" ng-controller="Ctrl1">
<a class="f-mrgn-left-4px"
key-hold
password="statusMessage"
generatedpassword="selfgeneratedpassword"
tabindex="0"
ng-mousedown="ShowPassword()"
ng-mouseup="HidePassword()">Show</a>
<span>{{selfgeneratedpassword}}</span>
</div>
JavaScript
function Ctrl1($scope) {
$scope.selfgeneratedpassword = '******';
$scope.statusMessage = "Password";
$scope.ShowPassword = function () {
console.log('show passwo', $scope.statusMessage);
$scope.selfgeneratedpassword = $scope.statusMessage;
}
$scope.HidePassword = function () {
$scope.selfgeneratedpassword = "********";
}
}
angular.module('myApp', []).directive('keyHold', function() {
return {
restrict: 'A',
scope: {
'password': '=',
'generatedpassword': '='
},
link: function(scope, element, attrs) {
console.log('self generated password', scope.password,scope.generatedpassword, element);
element.bind('keydown', function () {
$timeout(function () {
console.log('after timeout');
scope.selfgeneratedpassword = scope.password;
}, 100);
});
element.bind('keyup', function () {
scope.generatedpassword = "*******";
});
}
}
附加的提琴手将解释我是如何实现它的。 Fiddler Link。在提琴手中,我无法使两种方式绑定工作。任何人都可以帮我解决这个问题。我为此浪费了一天的时间。
【问题讨论】:
标签: javascript html angularjs angularjs-directive