Michael Tempest
Michael Tempest

Reputation: 834

Subviews in Angular

So I am trying to render a subview within a template but I want to define the state inside of the subviews controller on click of an element. The reason for splitting it out from the main controller is that I will be having subviews within the initial subview.

However, I get the following error:

Error: [$injector:modulerr] Failed to instantiate module ivy.quote.controllers.durationCtrl due to: TypeError: Cannot read property 'navigable' of undefined

This happens before I have even clicked the button which basically does the following

$state.transitionTo('quote.duration');

quote.tpl.html

<div class="quote grid" disable-scroll>
  <div modal-from-bottom modal-hidden="calendarHide"
    modal-content-class="quote__keypad" modal-speed="200" ui-view></div>
</div>

quoteCtrl.js

angular.module('ivy.quote.controllers.quoteCtrl', [
    'ivy.quote.controllers.keypadCtrl',
    'ivy.quote.controllers.durationCtrl',
    'ivy.quote.services.quoteManager',
    'ui.router',
    'ivy.quote.calendar',
    'wn.keypad',
    'wn.gesture.disableScroll'
  ])

/**
 * Configure UI Router
 */
  .config(['$stateProvider', function ($stateProvider) {
    $stateProvider.state('quote', {
      url: '/quote',
      controller: 'quoteCtrl',
      templateUrl: 'quote/templates/quote.tpl.html'
    });
  }])

  .controller('quoteCtrl', ['$scope', '$timeout', '$state', 'quoteManager',
    function ($scope, $timeout, $state, quoteManager) {
}]);

duration.tpl.html

<div class="quote__calendar">
  <h2>DURATION</h2>
  <div ui-view></div>
</div>

durationCtrl.js

angular.module('ivy.quote.controllers.durationCtrl', [
  'ui.router'
])

 .config(['$stateProvider', function ($stateProvider) {
  $stateProvider.state('quote.duration', {
    url: '/duration',
    controler: 'durationCtrl',
    templateUrl: 'quote/templates/duration.tpl.html'
  });
}])

 .controller('durationCtrl', ['$scope', function ($scope) {
  console.log('durationCtrl', $scope);
}]);

Upvotes: 0

Views: 703

Answers (1)

pretentiousgit
pretentiousgit

Reputation: 165

Your controller should be spelled "controller", not "controler", but otherwise, this looks like all the tutorials I've seen on subviews.

Upvotes: 1

Related Questions