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