首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs,ng-如果要更改文本?

AngularJs,ng-如果要更改文本?
EN

Stack Overflow用户
提问于 2014-05-25 02:58:43
回答 2查看 14.7K关注 0票数 8

我得到了以下代码

代码语言:javascript
复制
 <h2>{{ownername}} Online Bookshop</h2>
 <input placeholder="type your name" ng-model="ownername" >

输出'Online Bookshop‘

如果我输入'Fred‘,它会输出'Fred Online Bookshop’。

在不使用jQuery的情况下,如何更改代码,以便在输入不为空的情况下添加所有格撇号和字母s?

例如

当输入为空时在线书店,以及

当输入包含'Fred‘字符串时,Fred的在线书店

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-25 03:06:30

记住,作用域只是一个你可以评估事物的地方。这就是我们所能做的。?是一个形式为:(expression)?<true clause>:<false clause>;的三元运算符,它等于:

代码语言:javascript
复制
if(expression) { <true clause>; }
else { <false clause>; }

修改后的代码:

代码语言:javascript
复制
<h2>{{ ownername.length ? ownername + "'s " : "" }}Online Bookshop</h2>
<input placeholder="type your name" ng-model="ownername" >

编辑:尽管这是可行的,但正如其他人指出的那样,从视图中隐藏逻辑可能更好。这可以通过调用作用域函数,或者对变量应用筛选器来按预期进行转换来完成。

票数 20
EN

Stack Overflow用户

发布于 2014-05-25 04:05:12

使用过滤器!

代码语言:javascript
复制
app.filter('possessive', function() {
  return function(val) {
    if (!val) return '';
    return val + '\'s';
  };
});

然后:

代码语言:javascript
复制
<h2>{{ ownername | possessive }} Online Bookshop</h2>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23848608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档