Javascript 表达式angularjs中的组合属性
我有一个控制器,它的作用域中有联系人对象 如果联系人有名字或姓氏,我想显示Javascript 表达式angularjs中的组合属性,javascript,angularjs,Javascript,Angularjs,我有一个控制器,它的作用域中有联系人对象 如果联系人有名字或姓氏,我想显示名字姓氏 我的问题是,当联系人没有名字或姓氏时。在这种情况下,我想向用户显示创建新联系人,但因为表达式中的名字和姓氏之间有空格,所以它只显示空格 开始输入,你会发现,基本上,两个div应该显示相同的内容 angular.module('myApp',[])。 控制器('ctrl',函数($scope){ //$scope.contact={ //名字:'第一', //姓氏:“last” //} $scope.contac
名字
姓氏
我的问题是,当联系人没有名字或姓氏时。在这种情况下,我想向用户显示创建新联系人
,但因为表达式中的名字和姓氏之间有空格,所以它只显示空格
开始输入,你会发现,基本上,两个div应该显示相同的内容
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
//$scope.contact={
//名字:'第一',
//姓氏:“last”
//}
$scope.contact={};
});代码>
{{contact.FirstName+''+contact.LastName | | |'创建新联系人'}}
{{contact.FirstName+contact.LastName | |'创建新联系人'}
如果我正确理解您的问题,您可以使用ng show
/ng hide
:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-show="contact.FirstName && contact.LastName">
{{contact.FirstName + ' ' + contact.LastName}}
</span>
<span ng-hide="contact.FirstName && contact.LastName">
Create new contact
</span>
</div>
{{contact.FirstName+''+contact.LastName}
创建新联系人
这就是你想要的吗?如果我正确理解你的问题,你可以使用ng show
/ng hide
:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-show="contact.FirstName && contact.LastName">
{{contact.FirstName + ' ' + contact.LastName}}
</span>
<span ng-hide="contact.FirstName && contact.LastName">
Create new contact
</span>
</div>
{{contact.FirstName+''+contact.LastName}
创建新联系人
这就是你想要的吗?如果我正确理解你的问题,你可以使用ng show
/ng hide
:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-show="contact.FirstName && contact.LastName">
{{contact.FirstName + ' ' + contact.LastName}}
</span>
<span ng-hide="contact.FirstName && contact.LastName">
Create new contact
</span>
</div>
{{contact.FirstName+''+contact.LastName}
创建新联系人
这就是你想要的吗?如果我正确理解你的问题,你可以使用ng show
/ng hide
:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-show="contact.FirstName && contact.LastName">
{{contact.FirstName + ' ' + contact.LastName}}
</span>
<span ng-hide="contact.FirstName && contact.LastName">
Create new contact
</span>
</div>
{{contact.FirstName+''+contact.LastName}
创建新联系人
这就是您想要的吗?这里有两个选项1创建一个函数,如果您有名字或姓氏,则返回true或false,或者验证为html:
解决方案1:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
$scope.verifyContacts=函数(){
返回contact.FirstName | | contact.LastName;
}
});
创建新联系人
{{contact.FirstName+''+contact.LastName}
Soution 2:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
此解决方案将涉及从上述解决方案内联编写verifyContacts函数的表达式,因此您的html将如下所示:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="contact.FirstName || contact.LastName">Create new contact</span>
<span ng-show="contact.FirstName || contact.LastName">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
创建新联系人
{{contact.FirstName+''+contact.LastName}
我个人更喜欢第一种解决方案
编辑:呈现第三种解决方案:p
解决方案3:
如果名字可用,您可以在名字的末尾添加一个空格,这样就不需要在字符串中加空格
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
contact.FirstName = contact.FirstName ? contact.FirstName + ' ' : contact.FirstName;
}
});
<div> {{contact.FirstName + contact.LastName || 'Create new contact'}} </div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
contact.FirstName=contact.FirstName?contact.FirstName+“”:contact.FirstName;
}
});
{{contact.FirstName+contact.LastName | |'创建新联系人'}
这将起作用,但正如您在代码中看到的那样,输入字段没有显示,因此您很可能需要一个后端函数来实现该功能或其他功能。您这里有两个选项1创建一个函数,如果您有姓或名,或者验证为html,则返回true或false:
解决方案1:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
$scope.verifyContacts=函数(){
返回contact.FirstName | | contact.LastName;
}
});
创建新联系人
{{contact.FirstName+''+contact.LastName}
Soution 2:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
此解决方案将涉及从上述解决方案内联编写verifyContacts函数的表达式,因此您的html将如下所示:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="contact.FirstName || contact.LastName">Create new contact</span>
<span ng-show="contact.FirstName || contact.LastName">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
创建新联系人
{{contact.FirstName+''+contact.LastName}
我个人更喜欢第一种解决方案
编辑:呈现第三种解决方案:p
解决方案3:
如果名字可用,您可以在名字的末尾添加一个空格,这样就不需要在字符串中加空格
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
contact.FirstName = contact.FirstName ? contact.FirstName + ' ' : contact.FirstName;
}
});
<div> {{contact.FirstName + contact.LastName || 'Create new contact'}} </div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
contact.FirstName=contact.FirstName?contact.FirstName+“”:contact.FirstName;
}
});
{{contact.FirstName+contact.LastName | |'创建新联系人'}
这将起作用,但正如您在代码中看到的那样,输入字段没有显示,因此您很可能需要一个后端函数来实现该功能或其他功能。您这里有两个选项1创建一个函数,如果您有姓或名,或者验证为html,则返回true或false:
解决方案1:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
$scope.verifyContacts=函数(){
返回contact.FirstName | | contact.LastName;
}
});
创建新联系人
{{contact.FirstName+''+contact.LastName}
Soution 2:
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
$scope.verifyContacts = function(){
return contact.FirstName || contact.LastName;
}
});
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="verifyContacts()">Create new contact</span>
<span ng-show="verifyContacts()">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
此解决方案将涉及从上述解决方案内联编写verifyContacts函数的表达式,因此您的html将如下所示:
<div data-ng-app="myApp" data-ng-controller="ctrl">
<span ng-hide="contact.FirstName || contact.LastName">Create new contact</span>
<span ng-show="contact.FirstName || contact.LastName">{{contact.FirstName + ' ' + contact.LastName}}</span>
</div>
创建新联系人
{{contact.FirstName+''+contact.LastName}
我个人更喜欢第一种解决方案
编辑:呈现第三种解决方案:p
解决方案3:
如果名字可用,您可以在名字的末尾添加一个空格,这样就不需要在字符串中加空格
angular.module('myApp', []).
controller('ctrl', function($scope) {
$scope.contact = {};
contact.FirstName = contact.FirstName ? contact.FirstName + ' ' : contact.FirstName;
}
});
<div> {{contact.FirstName + contact.LastName || 'Create new contact'}} </div>
angular.module('myApp',[])。
控制器('ctrl',函数($scope){
$scope.contact={};
contact.FirstName=contact.F