私はAngularJSを初めて使っています(完了したチュートリアルはほとんどありません)。 すべてのユーザー(/ api/usersなど)に関するJSON情報と、指定されたユーザーの詳細(/ api/user/idなど)を示す別のAPIを提供するAPIがあります。 今、私は、/ user/idページを指すように/ usersページ内の各ユーザのリンクをgetUserDetailsという関数呼び出しを使って作成しようとしています。api2へのhttp呼び出しが成功した後、http:// http.get(api)が呼び出されました
問題:私は
質問ユーザー負荷が罰金/ /中/ユーザーIDのページをユーザーのデータを見ることができないけど、:私はクロームデバッガを使用している場合は、私が見る/ユーザーのhttpコール作品良い。任意のユーザリンクをクリックすることで、ライン11でデバッガの声明を打つが、それは後に、それはまた、なぜこれが(ライン5デバッガに起こっている5.
でデバッガを打つ主な原因これは私の「ユーザー」の変数はHTMLページでは得られません)?
これに対応する方法はありますか? 3行目のユーザー変数を宣言すると便利ですか? (個人的にはこれを試していませんが、これは正しい方法ではないと感じていますか?)
- APIのややこしいところ -/api/users内のすべてのユーザーの説明があります。その場合、特定のユーザー情報を新しいページに渡すようにコントローラー(およびhtml)を変更するにはどうすればよいですか?このアプローチは推奨されていますか?
制約:私は関与$の範囲で任意の提案は役立つだろうので、$スコープ変数せずにそれをロードすることができません。 PHPの解析を無視するためには、未処理のタグも必要です。
既存の質問を検索しようとしましたが、多くの情報が見つかりませんでした。それが良いキーワードの不足のためにあった場合は、有用な既存の答えを私に指摘してください。ここで定義:)以下
はuserlist.htm(すべてのユーザの番組リスト)
{% raw %}
<div ng-controller="UserController">
<div ng-repeat="user in users">
<h3><a href="/user/{{ user.id }}" ng-click="getUserDetails(user.id)">{{ user.name }}</a></h3>
<!-- userdetails.htm is called with this -->
</div>
</div>
{% endraw %}
{% put scripts %}
<script src="{{ 'assets/javascript/UserController.js'|theme}}"></script>
{% endput %}
あるuserdetails.htmは、(任意の選択されたユーザの詳細を示している)
{% raw %}
<div ng-controller="UserController">
<h3>{{ user.name }}</h3>
<!-- Some more user information here-->
</div>
{% endraw %}
{% put scripts %}
<script src="{{ 'assets/javascript/UserController.js'|theme}}"></script>
{% endput %}
AngularJSコントローラー:
app.controller("UserController", ['$scope', '$http', '$log', function ($scope, $http, $log) {
var userCtrlScope = $scope;
$http.get('/api/users').then(function(data){
debugger;
userCtrlScope.users = data;
});
userCtrlScope.getUserDetails = function(id){
$http.get('/api/user/' + id).then(function(data) {
debugger;
userCtrlScope.user = data;
});
};
}]);
ありがとうございました!
現在、laravelは私のためにuserdetails.htmを読み込みます。あなたの提案に応じて、UI Router/Angular JS Routerを試してみましょう。迅速な対応と提案をいただき、ありがとうございます。 :) – DSR