ng-repeat を使用して、サービスから表示されるアイテムのリストがあります。これらのアイテムにはすべて、「完全なアイテムの詳細」リンク (item.html) があります。詳細情報を表示する一般的なページ。
クリックされたアイテムのデータを item.html に渡して、表示される情報がクリックされたアイテムから取得されるようにする最良の方法は何でしょうか?
HTML は次のようになります。
<div class="container" ng-app="myApp">
<div ng-controller="ItemController">
<div ng-repeat="item in data.details">
<div class="wrapper">
<h3>{{item.title}}</h3>
<p>{{item.description}}</p>
<a href="#myModal" class="btn" openmodal>Open modal</a>
<a href="item.html">View full item details</a>
</div>
</div>
</div>
</div>
角度
var myApp = angular.module('myApp', []);
myApp.factory('Data', function(){
var Data = {};
Data.details = [
{
"id": 1,
"title": "Item 1",
"description": "Post 1 description - Nullam ac tellus sed mi laoreet placerat.",
"more": "more info"
},
{
"id": 2,
"title": "Item 2",
"description": "Post 2 description - Cociis natoque penatibus et magnis dis parturient montes.",
"more": "more info"
},
{
"id": 3,
"title": "Item 3",
"description": "Post 3 description - Nullam ac tellus sed mi laoreet placerat.",
"more": "more info"
}
]
return Data;
});
// Controller
function ItemController($scope, Data){
$scope.data = Data;
}
前もって感謝します
編集
ルート、各ルートの HTML ページを作成し、ng-view を使用して適切なコンテンツを表示しました。
以下の私のコードを参照してください:
// Routes
myApp.config(function($routeProvider){
$routeProvider
.when('/', {
templateUrl:"home.html"
})
.when('/task', {
templateUrl:"item.html"
})
})
// Controller
function ItemController($scope, $location, Item){
$scope.data = Item;
$scope.viewDetail = function(item) {
$scope.currItem= item;
$location.path('/item');
}
}
index.html は次のようになります。
<div class="container">
<ng-view></ng-view>
</div>
次に、ルート用に個別のファイルを作成しました。
home.html
<div class="container" ng-app="myApp">
<div ng-controller="ItemController">
<div ng-repeat="item in item.details">
<h3>{{item.title}}</h3>
<a ng-click="viewDetail(item)">View full item details</a>
</div>
</div>
</div>
item.html
<div class="container" ng-app="myApp">
<div ng-controller="ItemController">
<h3>{{currItem.title}}</h3>
<p>{{currItem.description}}</p>
</div>
</div>
home.html の私のリンク (全アイテムの詳細を表示) は、ng-click を使用して、クリックされた「アイテム」オブジェクトを渡します。
item.html console.log(item) 内でこのアイテム オブジェクトを使用したいのですが、正しいオブジェクトが得られます。
正しいデータを表示するために、item.html 内で「currItem」を使用しようとしました。うまくいきません。
ここで何が足りないかわからない?