在AngularJS中连接字符串时不要显示null

时间:2014-04-01 09:43:30

标签: angularjs null

像这样的简单ng-bind

<div ng-bind="author.Title.Value + ' ' + author.FirstName.Value + ' ' + 
author.LastName.Value"></div>

结果

  

博士。 null富兰克林

如果 author.FirstName.Value 为null。

是否有 简单的方法用空字符串替换 null (我知道我可以在控制器中连接这个字符串并返回一些东西比如 FullName ,但我更喜欢这样做。)

4 个答案:

答案 0 :(得分:2)

您不需要通过这种方式在控制器中添加代码

<div ng-bind="(author.Title.Value||"") + ' ' + (author.FirstName.Value||"") + ' ' 
+ (author.LastName.Value||"")"></div>

答案 1 :(得分:1)

执行此操作的“最简单”方法是移动用于将字符串连接到控制器的逻辑。它具有以下优点:

a)它将视图逻辑与控制器逻辑分开 b)更容易阅读和理解 c)它解决了你的问题

因此,您可以在控制器中使用以下功能:

$scope.getAuthorFullName = function (author) {
    var returnValue = '';

    if (author.Title.Value) {
        returnValue += author.Title.Value + ' ';
    }

    if (author.FirstName.Value) {
        returnValue += author.FirstName.Value + ' ';
    }

    if (author.LastName.Value) {
        returnValue += author.LastName.Value;
    }

    return returnValue;
};

在您看来,您可以:

<div ng-bind="getAuthorFullName(author)></div>

答案 2 :(得分:1)

试试这个

<div ng-bind="author.Title.Value + ' ' + author + ' ' + 
author.LastName.Value"></div>

而你在js中放了这个

if(author.FirstName.Value==null){
    $scope.author='';
}else{
    $scope.author=author.FirstName.Value
}

答案 3 :(得分:1)

您也可以使用以下内容:

<input type="text" value="{{ surname == 'null' ? '' : surname  }}"  />