javascript – 角度抛出“错误:无效的参数”

前端之家收集整理的这篇文章主要介绍了javascript – 角度抛出“错误:无效的参数”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个指令,它使用元素的文本,并在每10个字符之后放置 wbr个元素.我在例如使用长文本(例如URL)的表格单元格上使用它,因此它不会跨越表格.指令代码
myApp.directive('myWbr',function ($interpolate) {
    return {
        restrict: 'A',link: function (scope,element,attrs) {
            // get the interpolated text of HTML element
            var expression = $interpolate(element.text());

            // get new text,which has <wbr> element on every 10th position
            var addWbr = function (inputText) {
                var newText = '';
                for (var i = 0; i < inputText.length; i++) {
                    if ((i !== 0) && (i % 10 === 0)) newText += '<wbr>'; // no end tag
                    newText += inputText[i];
                }
                return newText;
            };

            scope.$watch(function (scope) {
                // replace element's content with the new one,which contains <wbr>s
                element.html(addWbr(expression(scope)));
            });
        }
    };
});

工作正常,除了在IE(我已经尝试过IE8和IE9),它向控制台发出错误错误:参数无效.

这是jsFiddle,当点击按钮时,您可以在控制台中看到错误.

那么明显的问题:为什么错误在那里,它的来源是什么,为什么只有在IE?

(奖金问题:如何让IE开发工具向我提供更多关于错误的信息,像源代码一样,因为花了我一些时间找到它,错误:无效的参数,并不能说明原因.)

P.S .:我知道IE根本不知道wbr,但这不是问题.

编辑:在我的实际应用程序中,我重新编写了这个指令,以便不查看元素的文本并进行修改,而是通过属性传递输入文本,并且在所有浏览器中都可以正常工作.但是我仍然很好奇为什么原来的解决方案是在IE中给出这个错误,从而开始了赏金.

解决方法

您尝试创建一个将元素注入到字符串中的指令在IE处理appendChild方法中遇到了一个已知的错误.即使在删除< div>之后,我可以用你的小提琴重现你的错误IE完全附加.

请注意,如果您完全删除您的div连接,并尝试以原始形式返回newText,您仍然可以获得

Error: Invalid argument.

Transclusion on UI view not working on IE9-10-11

猜你在找的JavaScript相关文章