所以我有一个可以是任何类型的变量。按类型我的意思是它可以是一个字符串或一个对象。我试图根据类型运行不同的代码。
我的变量名为range
,它在JavaScript中定义。我尝试过的是。 vars
是我要循环播放的对象。
<tr ng-repeat="(key, range) in vars">
<td ng-switch="typeof range">
<span ng-switch-when="string">It's a string</span>
<span ng-switch-when="object">It's an object</span>
<span ng-switch-default>It's something else</span>
</td>
</tr>
但这会抛出无效的表达式错误。最好的方法是什么?
答案 0 :(得分:4)
试试这个...我还添加了对不同类型变量的检测:string
,array
,object
,number
,null
和{ {1}}。
undefined
"use strict";
angular.module('myApp', [])
.controller("myController", function() {
this.vars = {
key1: "String",
key2: "String2",
key3: 42,
key4: {
name: "Mr. Anderson"
},
key5: [1, 2, 3, 4, 5],
key6: null,
key7: undefined
};
this.getTypeOf = function(value) {
if(value === null) {
return "null";
}
if(Array.isArray(value)) {
return "array";
}
return typeof value;
};
});
答案 1 :(得分:1)
控制器:
$scope.checkType = function(obj){
return typeof obj;
};
HTML:
<tr ng-repeat="(key, range) in vars"
<td ng-switch="checkType(range)">
<span ng-switch-when="string">It's a string</span>
<span ng-switch-when="object">It's an object</span>
<span ng-switch-default>It's something else</span>
</td>
</tr>