我是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,'-'); } } });
原文地址:https://www.jb51.cc/angularjs/140404.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。