加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 尝试使用ng-model替换带有破折号的空格

发布时间:2020-12-17 09:52:58 所属栏目:安全 来源:网络整理
导读:我是AngularJS的新手,试图创建一个简单的应用程序,允许我将文件上传到我的Laravel驱动的网站.我想让表单向我显示上传的项目的外观.所以我正在使用ng-model来实现这一点,我偶然发现了以下几点: 我有一些输入与一些基本的自举样式,我使用自定义括号为AngularJ
我是AngularJS的新手,试图创建一个简单的应用程序,允许我将文件上传到我的Laravel驱动的网站.我想让表单向我显示上传的项目的外观.所以我正在使用ng-model来实现这一点,我偶然发现了以下几点:

我有一些输入与一些基本的自举样式,我使用自定义括号为AngularJS模板(因为正如我所提到的,我正在使用Laravel与其叶片系统).而且我需要从输入中删除空格(如我键入它)并用虚线替换它们:

<div class="form-group"><input type="text" plaeholder="Title" name="title" class="form-control" ng-model="gnTitle" /></div>

然后我有这个:

<a ng-href="/art/[[gnTitle | spaceless]]" target="_blank">[[gnTitle | lowercase]]</a>

而我的app.js如下所示:

var app = angular.module('neoperdition',[]);

app.config(function($interpolateProvider){
    $interpolateProvider.startSymbol('[[').endSymbol(']]');
});

app.filter('spaceless',function(){
    return function(input){
        input.replace(' ','-');
    }
});

我收到以下错误:
TypeError:无法读取未定义的属性“replace”

我明白,我需要在过滤之前定义值,但我不知道在哪里定义它.而且,如果我定义它,我不希望它改变我的占位符.

过滤器中没有什么东西丢失.首先你需要返回新的字符串.次要,正则表达式不正确,您应该使用全局修饰符来替换所有空格字符.最后还需要检查字符串是否被定义,因为最初的模型值可以是未定义的,所以.replace on undefined会抛出错误.

全部一起:

app.filter('spaceless',function() {
    return function(input) {
        if (input) {
            return input.replace(/s+/g,'-');    
        }
    }
});

演示:http://plnkr.co/edit/5Rd1SLjvNI18MDpSEP0a?p=preview

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读