- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在构建一个韩语词汇训练器,我想将用户输入与人们输入的内容进行比较。
在韩语和其他一些亚洲语言中,您可以通过多个按键事件来组合字母。在 Chrome 中,$scope.$watch、ng-keyup 和 ng-change 仅在字母完全组成并输入新字母或空格后才会触发。我不介意 AngularJS 在最后一个字母完全组成之前不会触发任何东西,但是一旦字母完成,它应该触发而不必添加空格或开始下一个单词。
HTML:
<form name="forms.vocabularyForm">
<input name="answer" id="answer" ng-model="vocabularyCtrl.answer" ng-change="vocabularyCtrl.checkChange()" ng-keyup="vocabularyCtrl.checkKeyUp($event)" type="text" />
</form>
Controller :
.controller('VocabularyCtrl', [
'$scope',
'$location',
function($scope, $location) {
this.checkChange = function () {
console.log("answer change: " + this.answer);
};
this.checkKeyUp = function ($event) {
console.log("answer keyUp: " + this.answer);
};
$scope.$watch('vocabularyCtrl.answer', function (answerNew, answerOld) {
console.log('answerOld: ' + answerOld + ', answerNew: ' + answerNew);
}, true);
};
]);
例子:
Input: ㄱ
Console:
answerOld: , answerNew:
answer keyUp:
Input: 가
Console:
answerOld: , answerNew:
answer keyUp:
Input: 감 (character is now fully composed)
Console:
answerOld: , answerNew:
answer keyUp:
Input: 감ㅅ (starting the next character, same behaviour with space bar)
Console:
answerOld: 감, answerNew:
answer change: 감
answer keyUp: 감
最佳答案
正如 Angular 团队的一位乐于助人的成员所解释的那样,在组合 Angular 色时所有触发器都被有意抑制。更多详情 here .
按照建议,我创建了一个自定义指令,在编写字符时手动更新模型:
指令:
(function() {
'use strict';
angular.module('myApp', [])
// Angular's ng-change, ng-keyup and $scope.$watch don't get triggered
// while composing (e.g. when writing Korean syllables).
// See: https://github.com/angular/angular.js/issues/10588
// This custom directive uses element.on('input') instead, which gets
// triggered while composing.
.directive('cstInput', function() {
return {
restrict: 'A',
require: '^ngModel',
scope: {
ngModel: '=', // sync model
},
link: function (scope, element, attrs, ngModel) {
element.on('input', function() {
scope.ngModel = element.val();
});
}
};
});
})();
Controller :(按照 ippi 的建议)
$scope.$watch('quizzesCtrl.answer', function (answer) {
console.log(answer);
});
HTML:
<form ng-controller="QuizzesController as quizzesCtrl">
<input cst-input name="answer" id="answer" ng-model="quizzesCtrl.answer" type="text" />
</form>
更新
我必须将代码更改为以下代码才能使其在 FireFox 中工作(Chrome 和 Safari 可以很好地使用上面的代码)。
指令:
(function() {
'use strict';
angular.module('myApp', [])
// Angular's ng-change, ng-keyup and $scope.$watch don't get triggered
// while composing (e.g. when writing Korean syllables).
// See: https://github.com/angular/angular.js/issues/10588
// This custom directive uses element.on('input') instead, which gets
// triggered while composing.
.directive('cstInput', function() {
return {
restrict: 'A',
require: '^ngModel',
link: function (scope, element, attrs, ngModel) {
element.on('input', function() {
scope.$apply(function(){
scope.ngModel = element.val();
scope.$eval(attrs.cstInput, {'answer': scope.ngModel}); // only works if no scope has been defined in directive
});
});
}
};
});
})();
Controller :
this.checkAnswer = function (answer) {
if (answer === this.quiz.answer) {
this.isCorrect = true;
}
};
HTML(注意任何传入的参数都需要在 cst-input-callback 中列出):
<form ng-controller="QuizzesController as quizzesCtrl">
<input cst-input="quizzesCtrl.checkAnswer(answer)" ng-model="quizzesCtrl.answer" name="answer" id="answer" type="text" />
</form>
关于javascript - AngularJS:在编写韩文字符时触发 ng-change、ng-keyup 或 $scope.$watch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27663149/
在Python中,对于日语、中文和韩语,Python无法打印正确的字符串,例如日语、韩语和中文中的hello是: こんにちは 안녕하세요 你好 并打印这些字符串: In [1]: f = open('
在Python中,对于日文、中文、韩文,Python无法打印出正确的字符串,例如hello在日文、韩文、中文中是: こんにちは 안녕하세요 你好 并打印这些字符串: In [1]: f = open(
我有清理 URL 和文件名的功能,它可以很好地处理像 éáßöäü 这样的字符,因为它用 eassoau 等替换它们。使用 str_replace($a, $b, $值)。但是我怎样才能替换中文、日文
我有清理 URL 和文件名的功能,它可以很好地处理像 éáßöäü 这样的字符,因为它用 eassoau 等替换它们。使用 str_replace($a, $b, $值)。但是我怎样才能替换中文、日文
我有如下文字: 아니다 bukan 싫다 tidak suka 훌륭하다 bagus 我正在尝试删除英文行(英文字母)并将其附加到上行(韩文字母)的末尾,如下所示: 아니다bukan 싫다tidak
问题: 在 GIT 中使用 ls 将文件名中的所有 unicode 显示为“?” (即 ???.mp3)。 使用 git add -A 时返回以下错误:“fatal: unable to stat '
我正在考虑使用 DejaVu 字体为 CJK 脚本创建 [Ruby-like][1] 字体。 但是我不确定,是否 DejaVu 提供/支持 CJK 字形? 否则,您是否推荐了另一种可重复使用的免费/开
我有一个图像目录,每个图像的名称中都有一个汉字。我正在尝试列出所有图像,在列表上循环,读取并显示每个图像。 图片路径类似于https://github.com/sirius-ai/LPRNet_Pyt
这个问题在这里已经有了答案: What is proper way to test if the input is Korean or Chinese using JavaScript? (2 个答
我想在 UITextView 中设置斜体字体样式,但斜体字体在 iOS 7 上不适用于中文/日文/韩文。有人能帮忙吗? 最佳答案 因为iOS上没有斜体中文字体,需要使用affine transform
我希望能够识别中文、日文和韩文的书面字符,既可以作为一般语言,也可以作为分割语言。这些是原因: 将 CJK 识别为一个通用组:我正在制作一个垂直脚本蒙古语 TextView。为此,我需要将文本行旋转
我正在使用 ROR 和 Prawn 生成 PDF。 PDF 有英文(表格标签)和日文或其他 FE 语言(用户输入的数据)。 我在建议 ipamp.ttf 的地方找到了与此相关的问题。我安装了该字体,它
我正在使用 MS SQL 2008 Express 连接到我拥有数据库的共享 MS SQL 2008 服务器。数据库的默认排序规则当前为 SQL_Latin1_General_CP1_CI_AS。最终
我是一名优秀的程序员,十分优秀!