Skip to content

Commit a53cb9c

Browse files
committed
Adding third view state- items category
1 parent 71af453 commit a53cb9c

File tree

8 files changed

+73
-25
lines changed

8 files changed

+73
-25
lines changed

master-detail-view-pair/index.html

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,21 @@ <h1>Welcome to our Restaurant</h1>
1919
<script src="src/shoppinglist/menuapp.module.js"></script>
2020
<script src="src/shoppinglist/data.module.js"></script>
2121

22+
<!-- Services -->
23+
<script src="src/shoppinglist/menudata.service.js"></script>
2224

2325
<!-- Routes -->
2426
<script src="src/routes.js"></script>
25-
<script src="src/spinner/spinner.module.js"></script>
26-
27+
<script src="src/spinner/spinner.module.js"></script>
2728

28-
<!-- 'ShoppingList' module artifacts -->
29+
<!-- Components -->
2930
<script src="src/shoppinglist/categories.component.js"></script>
30-
<script src="src/shoppinglist/main-shoppinglist.controller.js"></script>
31-
<script src="src/shoppinglist/menudata.service.js"></script>
32-
31+
<script src="src/shoppinglist/items.component.js"></script>
3332

33+
<!-- Controllers -->
34+
<script src="src/shoppinglist/main-shoppinglist.controller.js"></script>
35+
<script src="src/shoppinglist/item-detail.controller.js"></script>
36+
3437

3538
<!-- 'Spinner' module artifacts -->
3639
<script src="src/spinner/loadingspinner.component.js"></script>

master-detail-view-pair/src/routes.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,32 @@ function RoutesConfig($stateProvider, $urlRouterProvider) {
2626
controller: 'MainShoppingListController as categories',
2727
resolve: {
2828
items: ['MenuDataService ', function (MenuDataService) {
29-
return MenuDataService .getAllCategories().then(function(response) {
29+
return MenuDataService.getAllCategories().then(function(response) {
3030
return response.data;
3131
});
3232
}]
3333
}
34+
})
35+
36+
.state('items', {
37+
url: '/items/{category}',
38+
templateUrl: 'src/shoppinglist/templates/items.template.html',
39+
controller: 'ItemDetailController as itemDetail',
40+
resolve: {
41+
items: ['$stateParams','MenuDataService',
42+
function ($stateParams,MenuDataService) {
43+
return MenuDataService.getItemsForCategory($stateParams.category)
44+
.then(function(response) {
45+
return response.data.menu_items;
46+
});
47+
}]
48+
}
3449
});
3550

51+
52+
53+
3654

37-
}
55+
}
3856

3957
})();
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
(function () {
2+
'use strict';
3+
4+
angular.module('MenuApp')
5+
.controller('ItemDetailController', ItemDetailController);
6+
7+
8+
ItemDetailController.$inject = ['items'];
9+
function ItemDetailController(items) {
10+
var itemDetail = this;
11+
itemDetail.items = items;
12+
}
13+
14+
})();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
(function () {
2+
'use strict';
3+
4+
angular.module('MenuApp')
5+
.component('items', {
6+
templateUrl: 'src/shoppinglist/templates/items.component.template.html',
7+
bindings: {
8+
items: '<'
9+
}
10+
});
11+
12+
})();

master-detail-view-pair/src/shoppinglist/menudata.service.js

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ MenuDataService .$inject = ['$http', 'ApiBasePath'];
1010
function MenuDataService ($http, ApiBasePath) {
1111
var service = this;
1212

13-
14-
15-
1613

1714
service.getAllCategories = function () {
1815

@@ -23,19 +20,16 @@ function MenuDataService ($http, ApiBasePath) {
2320

2421
};
2522

26-
/* service.getItemsForCategory = function (categoryShortName) {
27-
var deferred = $q.defer();
28-
23+
service.getItemsForCategory = function (categoryShortName) {
2924

30-
$timeout(function () {
31-
32-
deferred.resolve(items);
33-
}, 800);
34-
35-
return deferred.promise;
36-
};*/
37-
25+
return $http({
26+
method: "GET",
27+
url: (ApiBasePath + "/menu_items.json"),
28+
params: {category: categoryShortName}
29+
});
3830

31+
};
3932
}
4033

41-
})();
34+
35+
})();
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<ul>
22
<li ng-repeat="item in $ctrl.items">
3-
{{ item.short_name }} {{item.name}} {{item.description}}
3+
<a ui-sref="items({category: item.short_name })">{{item.name}}</a>
44
</li>
5-
</ul>
5+
</ul>
6+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<ul>
2+
<li ng-repeat="item in $ctrl.items">
3+
{{item.name}}
4+
</li>
5+
</ul>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<items items="itemDetail.items"></items>

0 commit comments

Comments
 (0)