Содержание ионов и нижний колонтитул имеют различную область видимости

У меня есть два поля ввода внутри моего ионного содержимого, и к ним оба прикреплена ng-модель. Затем внутри моего ионного колонтитула я нажимаю нг, где вызываю функцию и передаю две нг-модели.

Все это работало нормально, когда у меня был ng-щелчок внутри ионного содержимого, но когда я перемещаю его в нижний колонтитул, я получаю неопределенное значение для двух параметров, которые я передаю функции.

Значит ли это, что содержание ионов и нижний колонтитул имеют разные области видимости? Даже если они находятся в одном файле и имеют один и тот же контроллер?

2 ответа

Решение

Я верю ion-footer & ion-content создает новую дочернюю область, которая прототипически наследуется от текущей области. Ниже ионный код даст вам лучшую иллюстрацию того, как он работает внутри, scope: true, отвечает за создание новой дочерней области.

Код

.directive('ionContent', [
  '$parse',
  '$timeout',
  '$ionicScrollDelegate',
  '$controller',
  '$ionicBind',
function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) {
  return {
    restrict: 'E',
    replace: true,
    transclude: true,
    require: '^?ionNavView',
    scope: true, //<-- this creates a prototypically inerherited scope
    template:
    '<div class="scroll-content">' +
      '<div class="scroll"></div>' +
    '</div>',

Вам нужно использовать . аннотация исправит вашу проблему

Например.

Если вы используете переменную как примитив, как

$scope.volume = 5

Тогда вам нужно использовать:

$scope.data = { 'volume' : 5}

Угловое наследование прототипа

Объяснение ответа в комментариях от pankajparkar:

Директива по ионному содержанию имеет новую сферу применения. Он работает с использованием точечной нотации (важно при работе с наследованием области)

Вот почему он работает с ng-model="data.model1

Пожалуйста, обратитесь к:

AngularJS документация по областям применения

Яйцо видео

Другие вопросы по тегам