我正在尝试从控制器访问变量,但它一直给我以下错误。不知道为什么说vm没有定义。
未捕获的ReferenceError:未定义vm 在localhost /:1
的index.html
<!DOCTYPE html>
<html ng-app="test" ng-controller="mainController as vm">
<head>
<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
var Meta = vm.Meta;
</script>
</head>
<body>
<section ui-view></section>
</body>
</html>
mainController.js
(function() {
"use strict";
angular
.module("test")
.controller("mainController", mainController);
mainController.$inject = [
"$rootScope",
"$window",
"$scope",
"$log",
"UserService"
];
function mainController($rootScope, $window, $scope, $log, UserService) {
var vm = this;
vm.Meta = function() {
var Meta = {};
UserService.getUserData().then(
function(response) {
if (response.data) {
Meta = response.data;
Meta.firstName = response.data.name || "";
}
}
);
return Meta;
};
}
答案 0 :(得分:0)
将OutStr = OutStr & Chr(10) & getStr
附加到OutStr = OutStr & " " & getStr
而不是meta
:
$scope
然后,在您的内联this
块中公开您的范围:
$scope.Meta = function() {
...
}
此外,使用<script>
语法无法确保您在此方案中获得任何内容,因此请将其更改为var scope = angular.element( document.querySelector('[ng-app="test"]') ).scope();
var Meta = scope.Meta;
答案 1 :(得分:0)
你加载mainController.js?我没有在<head/>
此外,您的示例未显示匿名函数的关闭,并且它是立即调用(function (angular) {...})(angular);