angularjs:无法显示JS`typeof`的返回值

时间:2016-02-18 15:46:34

标签: javascript angularjs

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

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

Angular版本:1.4.8

2 个答案:

答案 0 :(得分:1)

您的代码有几个问题:

  1. typeof的语法为typeof a,而非typeof(a)
  2. typeof不是角度expression-binding的合法表达式,因此不会打印到模板。
  3. 考虑到上述两点,你应该将支票移到外部函数并使用正确的语法 - 一切正常:)

    请参阅the corrected code

    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>