当前位置: 首页 > 面试题库 >

AngularJS:在一个输入中,当没有聚焦时如何显示“ $ 50,000.00”,而在聚焦时如何显示“ 50000”?

袁鸿达
2023-03-14
问题内容

我有输入要显示格式化的数字。通常,当它没有焦点时,应该显示一个格式化的字符串,例如’$
50,000.00’。但是当它具有焦点时,它应该显示原始值,例如用于编辑的50000。

有内置功能吗?谢谢!


问题答案:

这是一条指令(formatOnBlur),它可以执行您想要的操作。
请注意,只有元素的显示值才被格式化(模型值将始终为未格式化)。

这个想法是您为focusblur事件注册侦听器,并根据元素的焦点状态更新显示值。

app.directive('formatOnBlur', function ($filter, $window) {
    var toCurrency = $filter('currency');

    return {
        restrict: 'A',
        require: '?ngModel',
        link: function (scope, elem, attrs, ctrl) {
            var rawElem = elem[0];
            if (!ctrl || !rawElem.hasOwnProperty('value')) return;

            elem.on('focus', updateView.bind(null, true));
            elem.on('blur',  updateView.bind(null, false));

            function updateView(hasFocus) {
                if (!ctrl.$modelValue) { return; }
                var displayValue = hasFocus ?
                        ctrl.$modelValue :
                        toCurrency(ctrl.$modelValue);
                rawElem.value = displayValue;
            }
            updateView(rawElem === $window.document.activeElement);
        }
    };
});

另请参 见此简短演示



 类似资料:
  • 问题内容: 我正在编写一个小型游戏,其中一个JFrame负责主游戏,另一个JFrame负责显示得分。问题是,当我完成构建它们时,分数JFrame总是最终集中精力!我试过调用scoreDisplay.toFront(),scoreDisplay.requestFocus(),甚至: 有什么办法可以使这项工作吗?预先感谢,约翰·穆拉诺 问题答案: 您是否考虑过将得分设置在与游戏框架相同的框架中? 其他

  • 我正在一个活动的登录页面上工作,其中用户名和密码作为两个编辑文本框。当焦点从用户名更改为密码框时,我试图显示Toast消息:-如果在用户名框中输入的文本中有空格-如果没有空格,则不显示Toast。

  • 我正在使用纯普通JavaScript创建一个HTML表单,其效果与SurveyMonkey.com/r/online-product-feedbed-survey-template-new类似 我想实现的是让我的表单题的不透明度变轻,让一个屏幕上的题不透明度:0;以便在上下滚动时,从用户获得焦点并使该表单的所有其他问题变暗,这将是完全可见的。 为此,我尝试了我的代码后,从不同的资源得到不同的提示,

  • 我的应用程序是一个全屏游戏的覆盖图(alwaysOnTop),当用户点击我的覆盖图时,它会聚焦并在游戏顶部显示任务栏。集中注意力是好的,但我不能有任务栏显示。 null 不是不能关注的工具箱窗口 这意味着有可能创建一个无法关注的窗口。 有人知道如何创建一个工具箱窗口,或者简单地避免在点击电子窗口时显示任务栏吗? 我应该提到我已经尝试了 和 。我还有 和 。 我创建的覆盖是“安全,中线,离线”按钮。

  • 我正在制作一个界面来编辑游戏场景。基本上,它由具有嵌套条件和操作的事件组成。所以,我计划使用两个树视图-一个用于选择事件,另一个用于选择事件内的条件/操作进行编辑。 现在,你看,如果我选择一个事件(在左树状视图中),然后尝试在右树状视图中选择某个内容,左树状视图将停止显示蓝色选择矩形。这显然很糟糕,因为现在用户不知道他正在编辑哪个事件! 我发现保留关于当前选择内容的某种信息的唯一方法是使用Ssel

  • 我已经阅读了讨论这个问题的其他问题,除了创建的第一个问题之外,它们都适用于我的布局。 目前,这是我的方法的顶部: ^这使得它至少键盘不会在启动时弹出,但仍然专注于。 这是我的的: 这是我提起我的活动时的样子: 问题是,对于某些手机,当像这样聚焦时,它们无法在其中写入。我希望它不对焦。 我所做的工作适用于接下来提出的布局,因为<code>编辑文本 请注意,它的布局是相同的。这是用户返回此屏幕后的屏幕