Javascript 使用anguarJS从json对象嵌套表

Javascript 使用anguarJS从json对象嵌套表,javascript,angularjs,json,Javascript,Angularjs,Json,我正在尝试使用angular显示json对象。对象可能有嵌套对象,也可能没有嵌套对象,因此我需要在运行时进行计算。 逻辑如下: 对于每个关键值(k,v): 如果v是一个对象,那么:对于每个(k2,v2),在HTML\u TD中添加另一个嵌套表。如果没有-需要在HTML\u TD中打印值 嵌套对象可以工作。 问题是:当v是一个对象时,我希望表达式的计算结果为“”,并且不打印任何内容(因为我将进入一个内部循环k2,v2),但是相反,即使v是一个对象,它也会将其打印到HTML\u TD 代码: <

我正在尝试使用angular显示json对象。对象可能有嵌套对象,也可能没有嵌套对象,因此我需要在运行时进行计算。 逻辑如下: 对于每个关键值(k,v): 如果v是一个对象,那么:对于每个(k2,v2),在HTML\u TD中添加另一个嵌套表。如果没有-需要在HTML\u TD中打印值

嵌套对象可以工作。 问题是:当v是一个对象时,我希望表达式的计算结果为“”,并且不打印任何内容(因为我将进入一个内部循环k2,v2),但是相反,即使v是一个对象,它也会将其打印到HTML\u TD

代码:

<table border="1">
<tr ng-repeat="(k,v) in json.properties">
    <td> {{ k }} </td>
    <td> {{ typeof (v) == 'object' ? '' : v }} </td>
    <td>
        <table>
            <tr ng-repeat="(k2,v2) in v">
                <td> {{ k2 }} </td>
                <td> {{ v2 }} </td>
            </tr>
        </table>
    </td>
</tr>

{{k}
{{typeof(v)='object'?'':v}
{{k2}}
{{v2}

angularjs模板插值中没有定义
typeof
函数,模板语法在javascript函数方面有点限制,但您可以在您的范围内声明它,如下所示:

$scope.typeof = function(obj) {
    return typeof(obj);
};
这样一个名为
typeof
的函数将在您的作用域中可见,您的snipet将能够工作。bellow snipet是实现此解决方案的一个简单示例

angular.module('myApp',[])
.controller('myController',函数($scope){
$scope.json={
特性:{
a:‘a’,
b:‘b’,
c:{
a1:‘a1’
}
}
};
$scope.typeof=功能(obj){
返回类型(obj);
};
});
元素(文档).ready(函数(){
引导(文档,['myApp']);
});

{{k}
{{typeof(v)='object'?'':v}
{{k2}}
{{v2}

angularjs模板插值中未定义
typeof
函数,模板语法在javascript函数方面有点限制,但您可以在您的范围内声明它,如下所示:

$scope.typeof = function(obj) {
    return typeof(obj);
};
这样一个名为
typeof
的函数将在您的作用域中可见,您的snipet将能够工作。bellow snipet是实现此解决方案的一个简单示例

angular.module('myApp',[])
.controller('myController',函数($scope){
$scope.json={
特性:{
a:‘a’,
b:‘b’,
c:{
a1:‘a1’
}
}
};
$scope.typeof=功能(obj){
返回类型(obj);
};
});
元素(文档).ready(函数(){
引导(文档,['myApp']);
});

{{k}
{{typeof(v)='object'?'':v}
{{k2}}
{{v2}

我认为angular解析器不允许模板中的
typeof
函数。 但您可以在控制器中定义一种方法来获取
类型的
。 例如:

现在在模板代码中调用此方法:

{{ getTypeof(v) === 'object' ? '' : v }} 

我认为angular解析器不允许在模板中使用
typeof
函数。 但您可以在控制器中定义一种方法来获取
类型的
。 例如:

现在在模板代码中调用此方法:

{{ getTypeof(v) === 'object' ? '' : v }} 

谢谢我定义了一个新方法$scope.is_object(),现在可以从html/angular代码中访问。谢谢我定义了一个新方法$scope.is_object(),现在可以通过html/angular代码访问它。