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

AngularJS-在URL输入字段中添加http前缀

夏飞鹏
2023-03-14
问题内容

我们的应用程序正在通过bootstrap(angular-ui bootstrap)从jQuery移植到AngularJS。

以下出色的文章介绍的一个便捷功能是,如果URL字段中没有前缀,则将其添加“
http://”前缀:http : //www.robsearles.com/2010/05/jquery- validate-url-adding-http
/

我正在尝试通过指令在AngularJS中实现相同的功能,但是无法获得指令以更改ng-model的值,因为它正在被键入。

现在,我开始尝试通过在每次更改中添加一个“
http://”前缀来简化工作(我以后可以添加逻辑以仅在需要时添加它)。http://jsfiddle.net/LDeXb/9/

app.directive('httpPrefix', function() {
    return {
        restrict: 'E',
        scope: {
            ngModel: '='
        },
        link: function(scope, element, attrs, controller) {
            element.bind('change', function() {
                scope.$apply(function() {
                   scope.ngModel = 'http://' + scope.ngModel;
                });
            });
        }
    };
});

谁能帮我把这个写回ngModel。另外,我需要将此新指令应用于在其上具有隔离范围的指令的字段,因此我假设我不能再有一个具有隔离范围的指令-
如果是这样,我可以在没有隔离范围的情况下实现它吗?


问题答案:

一个很好的方法是使用的解析器和格式化程序功能ng- model。许多人将使用ng- model仅用作隔离范围的绑定,但实际上这是一个非常强大的指令,似乎在正确的位置缺少文档来指导人们如何充分利用它。

您要做的就是从您的指令中require控制器进行操作ng- model。然后,您可以推入将’ http:// ‘添加到视图的格式化程序,并在需要时将其推入模型的解析器。所有绑定工作和与输入的接口均由完成ng- model

除非我能找到一个不错的博客(非常欢迎任何发现它的人发表评论),否则更新小提琴可能是描述此问题的最佳方法,这种对URL的支持可以通过’ http ‘或’
https ‘ 手动输入,以及自动前缀(如果没有一个):http :
//jsfiddle.net/jrz7nxjg/

这也解决了您的第二个问题,即您不再需要绑定任何对象,因此无法在一个元素上拥有两个隔离的作用域。



 类似资料:
  • 问题内容: 我无法使用[Flask-RESTful] [1]在嵌套的输出字段中生成api端点URL。 我发现只在顶部url字段内生成url,而不在嵌套的url字段内生成url。它抛出-[错误日志要点] [1] https://gist.github.com/anonymous/6251c67089871d0e4516 例如,这是我的网址字段 问题答案: 问题是需要一个必需的端点参数,在本例中为。

  • 给定示例类: 如何为用户名添加自定义前缀并从id继承值?例如:id的值为1,所以我希望用户名字段的值为:“REGULAR.USER.1”

  • 我一直习惯于使用jquery或其他javascript框架,但现在我没有框架可供使用,所以我想看看是否有人知道我如何在可能的情况下使用纯javascript实现这一点。 基本上我有一个这样的div 我需要的一个是,当点击AddMore按钮时,我需要基本上添加更多的宽度和长度字段,或者创建一个完整的结构,就像上面包含所有div的结构,或者只是插入一个新的span标记,其中包含现有div下面的字段。

  • 问题内容: 我不太确定如何处理此问题。我希望我能到达那里。 例如,我在一个页面上有一张充满地址的表。这些计数是动态的(可以是5或10或任何其他计数)。我希望可以在一页上进行编辑。 我的方法是创建wtforms一个表单编辑一个地址,并乘以它在Jinja2的和附加到HTML propertys并在 从itereation,这样我就可以提取人工数据的每一行,并把它放回我的形式,当我想评估一下。 因此,此

  • 这是我的代码 null null 在页面加载时,如果用户开始键入,焦点将聚焦输入,但不允许用户输入键入的字符。到目前为止,焦点是工作的,但当用户连续键入时,它并不像预期的那样工作。请帮帮我。任何帮助都将不胜感激。

  • 问题内容: 我有一个最大字符范围为16的字符,每4个字符后,我要添加一个负字符或空格,然后编写其余的字符,例如本示例5022-2222-2222-2222。有我的代码,但是那不起作用,该怎么办? 我在 范围方法中添加此代码。 问题答案: 我们可以从实现oisdk:s SwiftSequence 方法的(版本号)的Swift 3版本开始: 在这种情况下,实现自定义格式是创建4个字符的块并将其通过“-