向Angular-xeditable输入字段添加指令

时间:2015-06-30 07:06:07

标签: javascript angularjs x-editable angular-directive

您好我正在使用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>

现在我如何让我的指令影响这个输入?

1 个答案:

答案 0 :(得分:3)

您可以使用e-* attributes in锚元素。

以下是here

的示例

顺便说一下,您的代码无法正常运行。有一个无限循环,因为$ setViewValue将调用$解析器,然后你的$ parsers函数将再次调用$ setViewValue。我改变了你的代码。它现在工作正常。