指令的角度变化输入类型

时间:2017-12-11 18:57:18

标签: angular angularjs-directive

我正在制作货币指令。我想要实现的是这个。

  1. 当我点击输入时,将输入类型更改为" number" (所以我可以利用类型="数字") 当我单击输入时,更改输入类型文本(因此我可以将数字格式化为货币,因为type = number只接受数值)。
  2. 它工作IF,我把输入更改功能放在控制器中,但它只有我有一个输入。 (请参阅.html和script.js中的注释代码

    解决方案是将函数放在指令中。

    我尝试过没有成功。

    这是一个plunker https://plnkr.co/edit/4l6CwIvZqCdIem5VXvtk?p=preview

    指令

    中的链接代码
    link: function(scope, el, attrs) {
    
        el.val($filter('currency')(scope.amount));
    
        el.bind('focus', function() {
          scope.typeNumber();
          el.val(scope.amount);
        });
    
        el.bind('input', function() {
          scope.amount = parseFloat(el.val());
          scope.$apply();
        });
    
        el.bind('blur', function() {
          scope.typeText()
          el.val($filter('currency')(scope.amount));
        });
    
        scope.typeNumber = function() {
          scope.t = 'number';
          console.log(scope.t);
        }
           scope.typeText = function() {
          scope.t = 'text';
          console.log(scope.t);
        }
    
      }
    

    由于某种原因,这些功能无法在'模糊'并且'关注'我尝试了范围。$ apply()也没有成功。

    任何想法都可以做到吗?

    我不知道是否应该使用观察者,(我不愿意)

    谢谢

0 个答案:

没有答案