Angular JS 与 Laravel -- 如何绑定 Eloquent ORM 数组以查看
Angular JS with Laravel -- How to Bind Eloquent ORM array To View
我尝试将 Laravel Eloquent ORM 数组绑定到 Angular JS 视图。
这是我的代码,
控制器 (Laravel)
public function index()
{
$data = User::all();
Response::json(array('data'=>$data));
}
查看(Laravel)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel PHP Framework</title>
<script type="text/javascript" href="{{URL::asset('js/angular.js')}}"></script>
<script type="text/javascript" href="{{URL::asset('js/controller.js')}}"></script>
</head>
<body>
<div class="welcome">
<ul ng-controller="clientList">
<li ng-repeat="clients as clients">{{clients.name}}</li>
</ul>
</div>
控制器(环形 JS)
var anguApp = angular.module('anguApp', []);
anguApp.controller('clientList',function($scope,$http)
{
$scope.clients=[];
$http.get('/').success(function (data, status) {
$scope.clients = data;
console.log(data);
});
});
现在浏览器出现黑屏....
如何解决这个问题?
我相当确定您不应该将 User::all();
的结果包装到一个数组中。
也就是直接pass它的结果就够了:
Response::json($data->toArray());
此外,无论 Laravel 控制器做什么,您都需要 return:
public function index()
{
$users = User::all();
return Response::json($users->toArray());
}
更新:
或者,按照 Returning an Eloquent model as JSON in Laravel 4,您还可以 return 模型本身:
public function index()
{
$users = User::all();
return $users;
}
更新二:
很确定你的 AngularJS 语法是错误的,根据 docs 是:
<div ng-repeat="(key, value) in myObj"> ... </div>
因此您的代码应为:
<ul ng-controller="clientList">
<li ng-repeat="client in clients">{{client.name}}</li>
</ul>
我尝试将 Laravel Eloquent ORM 数组绑定到 Angular JS 视图。
这是我的代码,
控制器 (Laravel)
public function index()
{
$data = User::all();
Response::json(array('data'=>$data));
}
查看(Laravel)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel PHP Framework</title>
<script type="text/javascript" href="{{URL::asset('js/angular.js')}}"></script>
<script type="text/javascript" href="{{URL::asset('js/controller.js')}}"></script>
</head>
<body>
<div class="welcome">
<ul ng-controller="clientList">
<li ng-repeat="clients as clients">{{clients.name}}</li>
</ul>
</div>
控制器(环形 JS)
var anguApp = angular.module('anguApp', []);
anguApp.controller('clientList',function($scope,$http)
{
$scope.clients=[];
$http.get('/').success(function (data, status) {
$scope.clients = data;
console.log(data);
});
});
现在浏览器出现黑屏.... 如何解决这个问题?
我相当确定您不应该将 User::all();
的结果包装到一个数组中。
也就是直接pass它的结果就够了:
Response::json($data->toArray());
此外,无论 Laravel 控制器做什么,您都需要 return:
public function index()
{
$users = User::all();
return Response::json($users->toArray());
}
更新:
或者,按照 Returning an Eloquent model as JSON in Laravel 4,您还可以 return 模型本身:
public function index()
{
$users = User::all();
return $users;
}
更新二:
很确定你的 AngularJS 语法是错误的,根据 docs 是:
<div ng-repeat="(key, value) in myObj"> ... </div>
因此您的代码应为:
<ul ng-controller="clientList">
<li ng-repeat="client in clients">{{client.name}}</li>
</ul>