我在我的应用程序中设置了一个控制器(松散地跟随a guide)。第一个div按预期运行 - 第一个显示文本而另一个显示为空。但是, ContraAss 控制器似乎不会呈现,只显示 {{info}} 。我错过了什么愚蠢的事情? (注意:我确定它是基本的东西,但由于缺乏经验和对智力感觉不太好的一般刺激,我没有想法如何继续。)
XML
<body>
<div ng-app="ApplicationHolder">
<div>Uno: "{{holderUno}}"</div>
<div>Duo: "{{holderDuo}}"</div>
<div ng-controller="ContraAss">{{info}}</div>
</div>
</body>
JS
var application = angular.module("ApplicationHolder", []);
application.run(function ($rootScope) {
$rootScope.holderUno = "Blipp";
});
application.controller("ContrAss", function($scope) {
$scope.info = "This is an info carrier";
});
输出
Uno:&#34; Blipp&#34;
Duo:&#34;&#34;
{{信息}}
首先我认为我可能会以不正确的方式发送范围,但后来我意识到它会被渲染为空字符串,类似于 HolderDuo 。所以现在,我倾向于怀疑控制器根本没有被识别为控制器。
我该如何处理?
答案 0 :(得分:1)
在ContraAss
到ContrAss
的评论中更新了@ Starscream1984建议的控制器名称(并将应用名称更改为myApp):
HTML:
<body>
<div ng-app="myApp">
<div>Uno: "{{holderUno}}"</div>
<div>Duo: "{{holderDuo}}"</div>
<div ng-controller="ContrAss">{{info}}</div>
</div>
</body>
JS:
var myApp = angular.module("myApp", []);
myApp.run(function ($rootScope) {
$rootScope.holderUno = "Blipp";
});
myApp.controller("ContrAss", function($scope) {
$scope.info = "This is an info carrier";
});
答案 1 :(得分:1)
HTML和JS中的控制器名称之间存在不匹配(拼写错误)。
HTML正在寻找名为ContraAss
的控制器,但在您的JavaScript中,您已将其定义为ContrAss
。因此,没有控制器存在,它会向控制台抛出一个错误(这是一个很好的第一个检查,无论何时你不理解JavaScript正在做什么)。
将您的控制器定义更改为:
myApp.controller("ContraAss", function($scope) {
$scope.info = "This is an info carrier";
});