angularjsで「@ユーザー機能」を実装しようとしていますが、ユニットテストを書くことを除いて、機能をほぼ完成させています。テキストエリアでキャレットの位置を取得するのに役立つキャレットモジュールがあります。
最も重要なことはキャレットの位置を取得することだと思いますが、ジャスミンでそれを行う方法がわかりません。
マイディレクティブ
.directive('atUser', function (Caret) {
return {
restrict: 'A',
link: function (scope, element) {
element.bind('focus click keydown', function () {
scope.caretPos = Caret.getPos(element);
});
scope.$watch(function () {
return scope.caretPos;
}, function (nowCaretPos) {
/* do something here */
})
}
}
})
HTML
<textarea ng-model="message" at-user></textarea>
ジャスミン
describe('test at user', function () {
/* some init code */
it('should get caret postion', function () {
textarea = element.find('textarea');
textarea.triggerHandler('focus');
except(textarea.scope().caretPos).toEqual(0);
/*
* then i want to simulate keydown event and type something
* and get the caret postion
* but i dont know how to do it
* /
})
})
もう1つは、jqueryを使いたくないということです。
誰でも私を助けることができますか?
どうもありがとう!