重复 Angular + 触摸键盘
Ng-Repeat Angular + Touch Keyboard
我正在制作一个带有某些字段的 table,可以选择添加新行。最后,我将打印所有字段。
我要做的应用程序是触摸显示器,所以我做了一个新键盘。
问题是,如果我按下这个键盘的一个按钮,我可以读取相应的输入,但我无法读取 json 数组。但是如果我用电脑键盘输入这个输入,我可以看到数组中按下的键。
这不是我的申请,这只是一个简单的例子来向您展示我的问题:http://plnkr.co/edit/4cP2xSDRgvHG29RuA92N?p=preview
这里是键盘的 jQuery:
$(document).ready(function() {
$('#myInput').click(function() {
$('#n_keypad').fadeToggle('fast');
});
$('.done').click(function() {
$('#n_keypad').hide('fast');
});
$('.numero').click(function() {
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) === 0) {
$('#myInput').val($(this).text());
} else {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
$('.neg').click(function() {
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
if (parseInt($('#myInput').val()) > 0) {
$('#myInput').val(parseInt($('#myInput').val()) - 1);
}
}
});
$('.pos').click(function() {
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
$('#myInput').val(parseInt($('#myInput').val()) + 1);
}
});
$('.del').click(function() {
$('#myInput').val($('#myInput').val().substring(0, $('#myInput').val().length - 1));
});
$('.clear').click(function() {
$('#myInput').val('');
});
$('.zero').click(function() {
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) !== 0) {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
});
谢谢!!
使用 angular 代替 jQuery。
这是一个 运行 示例。它更容易和松耦合。
HTML
<input type="text" data-ng-model="food.Text" data-ng-click="food.showKeypad = true" />
<keypad data-show="food.showKeypad" data-text="food.Text" />
JS
app.directive('keypad', function($compile) {
return {
restrict: 'AE',
scope : {
show : '=',
text : '='
},
link : function(scope, element, attrs, model){
scope.type = function(){
scope.text = scope.text+'0';
};
scope.done = function(){
scope.show = false;
};
element.parent().append($compile(
'<div ng-show="show">'+
'<button ng-click="type()">0</button>'+
'<button ng-click="done()">x</button>'+
'</div>'
)(scope));
}
};
});
我正在制作一个带有某些字段的 table,可以选择添加新行。最后,我将打印所有字段。 我要做的应用程序是触摸显示器,所以我做了一个新键盘。 问题是,如果我按下这个键盘的一个按钮,我可以读取相应的输入,但我无法读取 json 数组。但是如果我用电脑键盘输入这个输入,我可以看到数组中按下的键。
这不是我的申请,这只是一个简单的例子来向您展示我的问题:http://plnkr.co/edit/4cP2xSDRgvHG29RuA92N?p=preview
这里是键盘的 jQuery:
$(document).ready(function() {
$('#myInput').click(function() {
$('#n_keypad').fadeToggle('fast');
});
$('.done').click(function() {
$('#n_keypad').hide('fast');
});
$('.numero').click(function() {
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) === 0) {
$('#myInput').val($(this).text());
} else {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
$('.neg').click(function() {
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
if (parseInt($('#myInput').val()) > 0) {
$('#myInput').val(parseInt($('#myInput').val()) - 1);
}
}
});
$('.pos').click(function() {
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
$('#myInput').val(parseInt($('#myInput').val()) + 1);
}
});
$('.del').click(function() {
$('#myInput').val($('#myInput').val().substring(0, $('#myInput').val().length - 1));
});
$('.clear').click(function() {
$('#myInput').val('');
});
$('.zero').click(function() {
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) !== 0) {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
});
谢谢!!
使用 angular 代替 jQuery。 这是一个 运行 示例。它更容易和松耦合。
HTML
<input type="text" data-ng-model="food.Text" data-ng-click="food.showKeypad = true" />
<keypad data-show="food.showKeypad" data-text="food.Text" />
JS
app.directive('keypad', function($compile) {
return {
restrict: 'AE',
scope : {
show : '=',
text : '='
},
link : function(scope, element, attrs, model){
scope.type = function(){
scope.text = scope.text+'0';
};
scope.done = function(){
scope.show = false;
};
element.parent().append($compile(
'<div ng-show="show">'+
'<button ng-click="type()">0</button>'+
'<button ng-click="done()">x</button>'+
'</div>'
)(scope));
}
};
});