私のhtmlは2つの形式で入力を取りinput
、contenteditable div
. 両方を処理する 1 つのディレクティブを作成したいのですが、関数を呼び出したタグを特定する方法が見つかりません (Angular の JQLite は is() または get() 関数を提供していないため)。IS_INPUT_TAG を評価する方法がわかれば、次のコードは完成します。
function funct() { return {
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
// view -> model
element.bind('input', function() {
scope.$apply(function() {
if(IS_INPUT_TAG)
ctrl.$setViewValue(element.val());
else
ctrl.$setViewValue(element.text());
scope.watchCallback(element.attr('data-ng-model'));
});
});
// model -> view
ctrl.$render = function() {
if(IS_INPUT_TAG)
element.val(ctrl.$viewValue);
else
element.text(ctrl.$viewValue);
};
}};
}
app.directive('input', funct);
app.directive('contenteditable', funct);