Javascript AngularJS:大括号中的字符串和变量

Javascript AngularJS:大括号中的字符串和变量,javascript,angularjs,Javascript,Angularjs,我有一个变量username和一个变量userid 我想在输入中显示括号中的名称和id,如下所示: Name (ID) 在angularjs中,当username和userid为空时,我会执行,这会导致一个丑陋的() 有没有比使用ng if更简单的方法来解决我的问题。 类似于{{username+”(“+userid+”)}?您需要ng if或ng show。如果要使元素保持可见,可以尝试以下方法: {{ username && userId ? (username + "("

我有一个变量
username
和一个变量
userid

我想在
输入中显示括号中的名称和id,如下所示:

Name (ID)
在angularjs中,当
username
userid
为空时,我会执行
,这会导致一个丑陋的
()

有没有比使用
ng if
更简单的方法来解决我的问题。

类似于
{{username+”(“+userid+”)}

您需要ng if或ng show。如果要使元素保持可见,可以尝试以下方法:

{{ username && userId ? (username + "(" + userid + ")") : "" }}

可能需要编辑以处理空空格/零。

此JSFIDLE提供了4个选项。选择最适合你的:

  • 仅使用角度表达式:

    {{name?'('+name+'):'}}

  • 大多数时候我不会使用这个,如果你不需要任何可重用的东西,这只是最直接的方法

  • 创建筛选器以显示用户id:

    app.filter('userIdDisplay',函数(){
    返回函数(输入){
    返回输入?“(“+input+”):”;
    };
    });

    {{name | userIdDisplay}}

  • 如果你有一个比括号更复杂的特殊格式,我会用这个

  • 如果某个变量具有truthy值,则创建通用筛选器以显示字符串:

    app.filter('ifExists',函数(){
    返回函数(输入,变量){
    返回变量?输入:“”;
    };
    });

    {{'('+name+')|如果存在:name}

  • 我会用它来表示具有简单显示的字符串,比如只添加括号

  • 使用ng if或ng显示并用跨距换行:

    ({{name}})


  • 如果它不仅是字符串格式,而且您还希望有条件地显示其他指令或普通html标记,我会使用它。

    如果userid为null,您希望显示什么?该值应为空