我有一个简单代码的plnkr,它试图在html页面中显示typeof("a")
的值。我总是得到的是什么都没有显示,而我期待的是“字符串”。其他数据类型也是如此。这是我的plnkr:
https://plnkr.co/edit/mUASA8s9TgplwysMhXvG?p=preview
我错过了什么吗?
我会注意到,我的最终目标是使用ng-if
,其条件基于变量的类型。
Angular版本:1.4.8
答案 0 :(得分:1)
您的代码有几个问题:
typeof a
,而非typeof(a)
typeof
不是角度expression-binding的合法表达式,因此不会打印到模板。考虑到上述两点,你应该将支票移到外部函数并使用正确的语法 - 一切正常:)
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.getTypeOfA = function() {
return typeof "a"
}
});
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js" type="text/javascript"></script>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<div>{{"aaa"}}</div>
<div>{{getTypeOfA()}}</div>
</body>
</html>
显然,您希望将变量传递给“checkTypeOf”函数并返回结果而不是像我一样。这仅用于演示目的!!!!
答案 1 :(得分:1)
您无法直接访问TEmplate中的typeof。其他方法使用此:
在控制器
中app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.typeOfFun = function(name){
return typeof name;
}
});
在Templte
<div>{{typeOfFun("a")}}</div>