UI-роутер именованные виды и NG-контроллер

0

Я назвал взгляды:

.state('home', {
  url: '/',
  views: {
    '' : {
      templateUrl: '/layouts/main.html',
      controller: ['$rootScope', function($rootScope) {
        $rootScope.css.background = "#ebeced";
      }]
    },
    'nav@home': { templateUrl: '/templates/nav.html' },
    'menu@home': { templateUrl: '/home/menu.html'},
    'main@home': { templateUrl: '/templates/feed.html' },
    'footer@home': { templateUrl: '/home/footer.html' }
  }
})

и main.html выглядит так (обратите внимание на ng-контроллер):

<div ng-controller="baseCtrl">
  <div ui-view="nav"></div>

  <div class="wrapper">

    <div id="menu">
      <div ui-view="menu"></div>
    </div>

    <div ui-view="main"></div>

    <div id="footer">
      <div ui-view="footer"></div>  
    </div>

  </div>
</div>

Мой baseCtrl не распознает значения ng-model в текстовых полях в любом из ui-view s.

<input type="text" ng-model="url" ng-blur="addUrl()" />

и baseCtrl:

$scope.url = ""; //required or get error about not being defined
$scope.addUrl = function() {
  console.log($scope.url); //nothing???
}

Я что-то делаю глупо?

ОБНОВЛЕНИЕ: Я думаю, что я решил проблему - мне нужно также определить baseCtrl как контроллер для каждого представления.

  • 0
    Вы должны написать ответ и принять его :-)
Теги:
angular-ui-router

1 ответ

0

Этот блок может быть некорректным:

'' : {
 templateUrl: '/layouts/main.html',
//..etc

Вы уверены, что неназванный элемент должен быть ключом в объекте конфигурации состояния? Вы можете попытаться поставить его differenlty:

.state('home', {
  url: '/',
  templateUrl: '/layouts/main.html',
  controller: ['$rootScope', function($rootScope) {
        $rootScope.css.background = "#ebeced";
  }],
  views: {
    'nav@home': { templateUrl: '/templates/nav.html' },
    'menu@home': { templateUrl: '/home/menu.html'},
    'main@home': { templateUrl: '/templates/feed.html' },
    'footer@home': { templateUrl: '/home/footer.html' }
  }
})
  • 0
    Я уверен, что если у вас есть именованные представления, то templateUrl отменяется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню