我尝试显示控制器的某个变量,但输出只是{{UserCtrl.user}}
而不是UserCtrl.user
的内容。
我有以下文件结构:
index.html
scripts/app.js
这是index.html
的代码:
<!doctype html>
<html lang="en" ng-app="birdsnest">
<head>
<meta charset="utf-8">
<title>Birdsnest</title>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap-theme.css">
</head>
<body>
<div ng-controller="UserController as UserCtrl">
{{UserCtrl.user}}
</div>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="scripts/app.js"></script>
</body>
</html>
scripts/app.js
:
(function() {
var app = angular.module('birdsnest', []);
app.controller('UserController', ['scope', function($scope) {
$scope.user = 'Michael';
}]);
})();
答案 0 :(得分:2)
更改此行:
app.controller('UserController', ['scope', function($scope) {
要:
app.controller('UserController', ['$scope', function($scope) {
编辑:
如果您使用的是controllerAs
,那么我认为您应该重写代码:
app.controller('UserController', function() {
this.user = 'Michael';
});
答案 1 :(得分:1)
当您在HTML中使用ControllerAs
语法时,最终绑定到控制器实例的值实际上在您的this
对象上。
这意味着将user
附加到scope
对象的代码不正确;相反,你应该做以下事情:
app.controller("UserController", function() {
this.user = "Michael";
});