Ваш код имеет несколько проблем:
- typeof синтаксис «s является
typeof a
и не typeof(a)
typeof
не является законным выражением для углового-х expression-binding, таким образом, ISN 'напечатано в шаблоне.
Учитывая два пункта выше, вы должны переместить проверку на внешнюю функцию и использовать правильный синтаксис - и все работает :)
См 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» и вернуть результат Не делай этого так, как я. Это только для демонстрационных целей !!!!
он ищет $ scope.typeof. Вы должны определить его через $ scope.typeof = function (data) {return typeof data; }; –