dimanche 1 mars 2015

Angular 1.3 + ui-router + generator-hg-poly embedding nested(?) views not working


I am new to Angular, ui-router and generator-ng-poly and am hoping someone can help with what is likely a simple syntax issue.


I am using geneartor-ng-poly for a new project and working from the "Deep Level Example" with an Angular 1.3 based app using ui-router and HTML.


First I created a "home" module, then a "header" module inside that. So...



yo ng-poly:module home
yo ng-poly:module home/header


Which gives me these two controllers: app/home/home.js



(function () {
'use strict';

/* @ngdoc object
* @name home
* @requires $stateProvider
*
* @description
*
*/
angular
.module('home', [
'ui.router',
'home.header'
]);

angular
.module('home')
.config(config);

function config($stateProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home/home.tpl.html',
controller: 'HomeCtrl',
controllerAs: 'home'
});
}

})();


and app/home/header/header.js



(function () {
'use strict';

/* @ngdoc object
* @name home.header
* @requires $stateProvider
*
* @description
*
*/
angular
.module('home.header', [
'ui.router'
]);

angular
.module('home.header')
.config(config);

function config($stateProvider) {
$stateProvider
.state('header', {
url: '/header',
templateUrl: 'home/header/header.tpl.html',
controller: 'HeaderCtrl',
controllerAs: 'header'
});
}

})();


Now I want to use the "header" from within home.tpl.html and I am struggling with how to do this. From what I understand either



<div ui-view=“header”></div>


or



<div ui-view=“home.header”></div>


should work. But neither is. Hours of Googling has not helped since all the examples use the more common $stateProvider format where there are chained states like so:



$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home/home.tpl.html',
controller: 'HomeCtrl',
controllerAs: 'home'
})
.state('home.header', {
url:'/header',
templateUrl: 'home/header/header.tpl.html',
controller: 'header/header-controller.js',
controllerAs: 'header'
});


How should I be referencing "header" to have it show up properly inside home.tpl.html?





Aucun commentaire:

Enregistrer un commentaire