angularjs:不能显示 JS 'typeof' 的返回值

angularjs: can't show the returned value of JS `typeof`

本文关键字:typeof 返回值 不能 JS angularjs 显示      更新时间:2023-09-26

我有一个简单的代码的plnkr,它试图在html页面中显示typeof("a")的值。我总是得到什么都没有显示,而我期待"字符串"。其他数据类型也是如此。这是我的 plnkr:https://plnkr.co/edit/mUASA8s9TgplwysMhXvG?p=preview

我错过了什么吗?我会注意到,我的最终目标是将ng-if与基于变量类型的条件一起使用。

角度版本:1.4.8

您不能在TEmplate中直接访问typeof。 其他方法使用这个:

在控制器中

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.typeOfFun = function(name){
    return typeof name;
  }
});

在坦普尔特

<div>{{typeOfFun("a")}}</div>

您的代码有几个问题:

  1. typeof的语法是typeof a的,而不是typeof(a)
  2. typeof不是 Angular 表达式绑定的合法表达式,因此不会打印到模板中。

考虑到上述两点,您应该将检查移动到外部函数并使用正确的语法 - 一切都:)

请参阅更正后的代码:

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"函数并返回结果,而不是像我那样这样做。这仅用于演示目的!!!