Форма доступа Angular JS в пределах вкладки Angular Bootstrap

У меня есть форма в прототипе Angular JS 1.4.1. У меня есть класс на нем, когда он грязный. Я пытаюсь смоделировать, как кто-то сохраняет форму, и поэтому она не грязная, она сохранена, поэтому изменения все еще присутствуют, но уже не грязные.

Фрагмент формы:

<div class="override">
  <tabset>
    <tab heading="My Tab">
      <form name="overridesForm">
        <p><input ng-model="rd.isOverriden" type="checkbox"> Foobar</p>
        <div class="buttons save-cancel">
          <button class="btn btn-default btn-xs" ng-click="overridesForm.reset();overridesForm.$setPristine()">Cancel</button>
          <button class="btn btn-primary btn-xs" ng-click="overridesForm.$setPristine()">Save with Inline</button>
          <button class="btn btn-primary btn-xs" ng-click="saveData()">Save with Inline</button>
        </div>
      </form>
    </tab>
    <tab heading="Some other Tab">
      blah
    </tab>
  </tabset>
</div>

Настройка формы на нетронутую работает для меня только встроенной, а не в функции контроллера. Итак, это работает:

<button ng-click="overridesForm.$setPristine()">Save</button>

Но не это:

<button ng-click="saveData()">Save</button>

//controller:
$scope.saveData = function () {
    $scope.overridesForm.$setPristine();
    toastr.success('Success', 'Data was saved.');
  };

Я получаю сообщение об ошибке времени выполнения, объект не переопределяет форму.

По причинам, которые мне еще предстоит выяснить, это работает в этом codepen, но не в моем проекте.

ОБНОВИТЬ:

После поиска о доступе к форме в транслируемом контенте я наткнулся на это:

 <button ng-click="saveData(overridesForm)">Save with Inline</button>

и назначьте это в контроллере:

  $scope.saveData = function(form) {
    $scope.overridesForm = form;
    $scope.overridesForm.$setPristine();
  };

Не уверен, что это лучшая практика, но она работает. Обновил кодеп.


comment
Вы устанавливаете имя формы, чтобы иметь доступ к нему в области видимости? Нам нужно увидеть больше кода   -  person Daniel Higueras    schedule 09.06.2016
comment
да. Добавил код формы для ясности.   -  person Steve    schedule 09.06.2016
comment
plunkr было бы здорово иметь возможность проверить это   -  person Daniel Higueras    schedule 09.06.2016
comment
Я добавил codepen, и он там работает. все еще застрял на том, почему не в моем проекте.   -  person Steve    schedule 09.06.2016
comment
Я должен добавить, что эта форма находится внутри вкладки пользовательского интерфейса Angular! У меня есть ощущение, что это моя проблема; он не является частью области, поскольку вкладка angular UI включает его.   -  person Steve    schedule 09.06.2016
comment
Попробуйте добавить вкладки пользовательского интерфейса в свой codepen. Вы можете найти проблему самостоятельно, делая это   -  person Daniel Higueras    schedule 09.06.2016
comment
Я только что сделал это. Не работает. Что мне нужно выяснить, так это то, как — или если — я могу получить доступ к форме в ng-transclude. Я вижу это в моем ng-inspector.   -  person Steve    schedule 09.06.2016