如何检查角度js中是否存在对象?

时间:2018-01-04 05:52:40

标签: javascript angularjs

有没有办法知道HTML中是否存在对象。我有一个像这样的对象。

$scope.object = {name : 'usman', profession : 'developer'}

现在我想在Html中知道对象是否存在,或者对象是否只包含这样的文本。

$scope.object = "Usman";

现在有我的条件。

    <div ng-if="object">
    <p>Object exist and have attributes</p>
    </div>

    <div ng-if="object">
    <p>object contain only string no attributes exist</p>
   </div>

我想写一个像这样的组合条件 - 如果对象没有属性并且只包含字符串,则显示div。

在这里。

 <div ng-show="!objecthasnoattributes and objectOnlyContainsString">
<p>show this </p>
    </div>

现在我该怎么做?

4 个答案:

答案 0 :(得分:1)

您可以写如下。

<div ng-if="object !== undefined"> </div>

要检查var的类型是OBJECT还是STRING ......你可以按照以下步骤进行操作。

    $scope.object = {
        name: 'usman',
        profession: 'developer'
    };

    $scope.myString = "Usman";

    $scope.isString = function(val) {
        return typeof val === 'string';
    }
    $scope.isObject = function(val) {
        return typeof val === 'object';
    }

然后检查以下类型。

    <div ng-if="object !== undefined && isObject(object)">
        <p>Object Value </p>
    </div>
    <div ng-if="myString !== undefined && isString(myString)">
        <p>String value</p>
    </div>

要求更多查询

由于

答案 1 :(得分:1)

使用单一方法可能会更短:

HTML:

<div ng-if="isObject()">
  <p>Object exist and have attributes</p>
</div>

<div ng-if="!isObject()">
  <p>object contain only string no attributes exist</p>
</div>

控制器:

$scope.isObject = function() {
  return typeof($scope.object) === 'object';
}

更新:

如果您只想显示字符串,

$scope.isString = function() {
  return typeof($scope.object) === 'string';
}

< strong>那么你只需要一个html:

<div ng-if="isString()">
  <p>Show this</p>
</div>

Here is a changed plunk

答案 2 :(得分:1)

你可以轻松搞定。

$scope.object = {name : 'usman', profession : 'developer'};

$scope.getBType = function(test){
  return( typeof test);
}

<div ng-if="getBType(object)=='object' && getBType(object.name)=='string'">
<p> Show this</p>
</div>

答案 3 :(得分:0)

如果您确定输入object仅限以下类型。

$scope.object = {name : 'usman', profession : 'developer'};

$scope.object = "Usman";

你可以简单地使用:

<div ng-if="object && object.name">
    <p>Object exist and have attributes</p>
</div>

<div ng-if="object && !object.name">
    <p>object contain only string no attributes exist</p>
</div>

只有当对象存在且具有name属性时,才会满足条件#1。