使用AngularJS进行条件绑定,如果property不为空,则连接并绑定值

Cor*_*Rab 16 javascript angularjs angularjs-scope

我是Angular的新手,如果值为!==为空,我试图将字符串绑定到模型.这项工作适用于一个输入,但我想将多个文本输入组合成一个字符串.

<input type="text" ng-model="data.source">
<input type="text" ng-model="data.medium">     

<span ng-show="data.source"><h3>{{'additionToSource' + data.source}}</h3></span>
<span ng-show="data.medium"><h3>{{'additionToMedium' + data.medium}}</h3>
Run Code Online (Sandbox Code Playgroud)

m59*_*m59 32

现场演示(点击).

如果要隐藏整个元素,可以简单地将ng-showor ng-hide指令添加到h3自身.

或者,您可以在绑定中使用三元来确定绑定的内容:

{{foo ? 'some string '+foo : ''}}
Run Code Online (Sandbox Code Playgroud)

说明:

foo //if $scope.foo is truthy (not empty)
? 'some string '+foo //bind a string with $scope.foo concatenated to the end
: '' //otherwise, bind in an empty string
Run Code Online (Sandbox Code Playgroud)

对于您的代码,它将是:

<h3>{{data.source ? 'additionToString' + data.source : ''}}</h3>
Run Code Online (Sandbox Code Playgroud)

根据您的评论,您可能还希望通过函数返回绑定:Live demo(单击).

<input ng-model="foo">

<h3 ng-show="foo">{{bar()}}</h3>
<h3>{{foo ? bar() : ''}}</h3>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$scope.foo = '';
$scope.bar = function() {
  return 'added value '+$scope.foo;
};
Run Code Online (Sandbox Code Playgroud)