Javascript &引用;控制器为;不使用ng repeat

Javascript &引用;控制器为;不使用ng repeat,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我试图在“Controller as”块中填充一个列表,但似乎无法显示任何内容。我得到了一个使用$scope的想法的最小示例: JS: HTML: HTML: 我知道$scope和这个是不同的概念,但我似乎无法理解本例中的细节 这可能是ng repeat的作用域规则的结果,还是我遗漏了一些明显的内容?在这里,在定义控制器功能时,您不应该使用箭头函数,这将导致此进入不属于控制器本身的意外上下文。解决方案是使用正常的功能 参考下面的示例并修复了 var-app=angular.module('

我试图在“Controller as”块中填充一个列表,但似乎无法显示任何内容。我得到了一个使用
$scope
的想法的最小示例:

JS:

HTML:

HTML:


我知道
$scope
这个
是不同的概念,但我似乎无法理解本例中的细节


这可能是ng repeat的作用域规则的结果,还是我遗漏了一些明显的内容?

在这里,在定义
控制器功能时,您不应该使用
箭头函数
,这将导致
进入不属于控制器本身的意外上下文。解决方案是使用正常的
功能

参考下面的示例并修复了

var-app=angular.module('testApp',[]);
app.controller('listController',[“$scope”,函数($scope){
var$ctrl=this;
this.listFiles=[“你好”,“世界”];
}]);

{{filename}}

您已经使用了es6箭头函数语法。由于浏览器不支持es6语法,您必须使用transpiler(Babel)将es6代码编译为纯javascript

试着改变这个

app.controller('listController', ["$scope", ($scope) => {


这与浏览器对ES6语法的支持有关吗?@AlanG根据您的问题,箭头功能似乎正在工作,否则您将收到一个错误
控制器不起作用
。顺便说一句,你的问题的主要原因是你正在使用箭头函数,正如我所回答的,这将导致上下文问题。
<div ng-app="testApp" ng-controller="listController">
  <div class="list-group">
    <a class="list-group-item list-group-item-action" ng-repeat="filename in listFiles">{{ filename }}</a>
  </div>
</div>
var app = angular.module('testApp', []);

app.controller('listController', ["$scope", ($scope) => {
  var $ctrl = this;
  $ctrl.listFiles = ["hello", "world"];
}]);
<div ng-app="testApp" ng-controller="listController as ctrl">
  <div class="list-group">
    <a class="list-group-item list-group-item-action" ng-repeat="filename in ctrl.listFiles">{{ filename }}</a>
  </div>
</div>
app.controller('listController', ["$scope", ($scope) => {
app.controller('listController', ["$scope", function($scope)  {