角度の付いたカタログWebサイトを作成する方法を学びます。 多くの製品を含むカタログを作成します。製品の1つをクリックすると、その選択した製品の詳細ページに行きます。製品コントローラカタログの詳細ページを作成するAngularJS
angular
.module('app')
.controller('productCtrl',['$scope', 'Product', function($scope,Product){
$scope.title="List Product";
Product.get().then(function(data) {
$scope.products = data;
});
$scope.products=Product.get();
}]);
01で私のdirective.js
angular
.module('app.directives.productCard',[])
.directive('productCard', function(){
return{
restrict: 'A',
scope:{
item:'='
},
templateUrl: "templates/directive/product.html",
controller:function($scope){
console.log($scope.item);
}
};
});
に私のサービス製品
angular
.module('app')
.factory('Product', ['$http', function($http){
return{
get: function(){
return $http.get('/api/products.json').then(function(response){
return response.data;
});
}
};
}])
の私app.jsに
angular
.module('app', [
'ui.router',
'app.directives.productCard'
])
.config(['$urlRouterProvider','$stateProvider', function($urlRouterProvider, $stateProvider){
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home',{
url: '/',
templateUrl:'templates/pages/home.html',
controller: 'homeCtrl'
})
.state('about',{
url: '/about',
templateUrl:'templates/pages/about.html'
})
.state('product',{
url: '/product',
templateUrl:'templates/pages/product.html',
controller: 'productCtrl'
})
.state('productDetails',{
url: '/product/:id',
templateUrl:'templates/pages/productDetails.html',
controller: 'productDetailsCtrl'
})
.state('contact',{
url: '/contact',
templateUrl:'templates/pages/contact.html'
})
}])
私は、ボタンを作りたいときに私ディレクティブのhtmlページ上の私のproduct.html
<section class="product-outer-container">
<section class="product-inner-container">
<div class="container">
<div class="row">
<div ng-repeat="item in products">
<div data-product-card item="item"></div>
</div>
</div>
</div>
</section>
</section>
上
は
<div class="col-md-3 col-sm-6">
<div class="card">
<img class="card-img-top" ng-src="{{item.image}}" alt="{{item.name}}">
<div class="card-block">
<strong class="card-title">{{item.name}}</strong>
</div>
<div class="card-block">
<a href="#" class="card-link">Detail</a>
</div>
</div>
</div>
JSONは唯一の私はちょっとこだわってこの
[
{
"name":"one", "image":"http://images.thenorthface.com/is/image/TheNorthFace/236x204_CLR/mens-better-than-naked-jacket-AVMH_LC9_hero.png",
"description":"Shop Now",
"price":132,
"qty":2
},
{
"name":"two", "image":"http://images.thenorthface.com/is/image/TheNorthFace/236x204_CLR/womens-better-than-naked-jacket-AVKL_NN4_hero.png",
"description":"lorem ipsum dolor",
"price":126,
"qty":22
}
]
のようなファイルが含まれています詳細な作業。 私はたくさんのものを逃したことを知っています。私のプロダクトページの 私はちょうどイメージと名前を表示したいです。 詳細ページには、その製品のすべてのデータを表示する予定です。
のライブプランナーがあります。/ product /:idに移動する新しい状態が必要です。それは新しいビューにあなたを連れて来ます、コントローラはIDで製品を取得し、あなたはそれを表示します。 – yBrodsky
コードにproductCtrlが実装されていませんjsfiddleを作成することをお勧めします。その方法を手助けするのは簡単です –
@juaninは私の説明を更新しました – GerryofTrivia