您好我正在使用Angular-xeditable
实现编辑就地功能我需要能够在想要编辑值时动态弹出的输入字段添加指令。
在这种情况下,它是angular-xeditable的简单文本字段,我想将指令添加到。
这是我的指示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>The Pressed Key: <span id=key></span></p>
用于文本输入类型的模板(但仅用于接受带有该指令的整数):
app.directive('limitInt', function () {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, ngModel) {
if (!ngModel) return;
ngModel.$parsers.unshift(function (inputValue) {
//dots and are not allowed in order to avoid legal numbers that are floats
inputValue = inputValue.replace(/\./g,'');
inputValue = inputValue.replace(/\e/gi,'');
if(isNaN(inputValue)){
ngModel.$setValidity('onlyFlo2', false);
} else{
//if scientific notation wit ...e-12 then round to closest integer
//inputValue= Math.round(inputValue);
ngModel.$setValidity('onlyFlo2', true);
}
ngModel.$setViewValue(inputValue);
ngModel.$render();
return inputValue;
});
}
};});
单击此链接,动态生成的内容(使用代码检查器查看)为html:
<a href="#" editable-text="v">{{ v }}</a>
现在我如何让我的指令影响这个输入?
答案 0 :(得分:3)
您可以使用e-* attributes in
锚元素。
以下是here
的示例顺便说一下,您的代码无法正常运行。有一个无限循环,因为$ setViewValue将调用$解析器,然后你的$ parsers函数将再次调用$ setViewValue。我改变了你的代码。它现在工作正常。