我一直在尝试显示ng-repeat
的内容。我使用 Laravel 5.2,这显然使这项任务更加复杂。
如果您还没有尝试过,让我解释一下使用双花括号(例如 {{ value }}
)将找到一个php变量($value
),而不是Angular控制器中的属性,如果你使用Laravel。
这可以通过前面的@
来解决,根据拉拉维尔的文档。另外,我了解到除了{{ value }}
之外,还有其他一些方法可以显示变量。不过,我无法在 HTML 上显示 ng-repeat
的值。
我的代码如下所示。
<div ng-app="angularApp" ng-controller="TableController as tc">
<table>
<tr ng-repeat="s in tc.data.students">
<td>@{{ s.name }}</td> //1st attempt
<td>@{!! s.name !!}</td> //2nd attempt
<td ng-bind="s.name"></td> //3rd attempt
</tr>
</table>
<script type="text/javascript">
angular.module('angularApp', [])
.controller('TableController', function(){
this.data = {
students: [
@foreach($students as $student)
"{!! $student !!}", //This can be replaced with {{ $student }}
@endforeach
]
};
});
</script>
$students
是一个数组,包含名为 student
的 SQL 对象。这来自拉拉维尔的控制器功能。
编辑我通常将$scope
用于控制器属性,但在这种情况下,我必须对控制器使用as
语法。因此,我不能使用 $scope
来存储控制器的变量。
你看到我做错了什么吗?任何建议将不胜感激!
试试这样
<script type="text/javascript">
angular.module('angularApp', [])
.controller('TableController', function($scope){
$scope.data = {
students: [
@foreach($students as $student)
"{!! $student !!}",
@endforeach
};
});
</script>
这就是我做同样的事情的方式:
视图:
<div ng-app="angularApp" ng-controller="TableController">
<input type="text" ng-model="searchBox">
<table style="width:100%;">
<tr ng-repeat="student in students">
<td>@{{ student.name }}</td>
</tr>
</table>
控制器:
angular.module('angularApp', [])
.controller('TableController', function($scope){
$scope.students: [
@foreach($students as $student)
"{!! $student !!}", //This can be replaced with {{ $student }}
@endforeach
];
});
$scope
是 Angular 中的一个基本概念:它使数据在范围内(在控制器或视图中)可用。这里有一些文档:https://docs.angularjs.org/tutorial/step_04
我建议您完成官方的Angular教程,它会对您有很大帮助。