2016-01-15 1 views
0

Я использую Angularjs, версии 1.5, и я определил форму в моем HTML следующим образом:Форма объект не определен при использовании Angularjs blockUI

<div class="row" ng-show="showForm"> 
<form class="form-horizontal" name="myForm" novalidate role="form"> 
</form> 
</div> 

В соответствующем контроллере я есть функция, которая сбрасывает форму и звонки в нетто:

$scope.myForm.$setPristine(); 

До сих пор все работает нормально.

потом попытаться использовать blockUI (https://github.com/McNull/angular-block-ui) путем изменения выше дел до:

<div class="row" ng-show="showForm" block-ui="myBlock"> 

Таким образом, единственное добавление: блок-Ui = "myBlock"

Однако, когда контроллер работает код я получаю:

TypeError: не удается прочитать свойство «$ setPristine» неопределенной

При отладке я вижу ТНА t объект формы не существует! При удалении block-ui = "myBlock" все работает отлично.

Любые идеи?

Заранее спасибо

+0

Вы посмотрели пример формы: http://angular-block-ui.nullest.com/#!/examples/focus-management – csharpfolk

+0

Да ... это не помогло. – alfrag

ответ

0

Попробуйте что-то вроде этих:

function MyCtrl($scope, $timeout, blockUI) { 

    $scope.form = {}; 

    $scope.submit = function() { 
    var myBlockUI = blockUI.instances.get('myForm'); 

    $scope.form.myForm.$setPristine(); 
    myBlockUI.start(); 

    $timeout(function() { 
     // Stop the block after some async operation. 
     myBlockUI.stop(); 
    }, 3000); 
    }; 
} 

и вид:

<form name="form.myForm" novalidate ng-submit="submit()" block-ui="myForm"> 
    <input type="text"> 
    <button> 
     Submit 
    </button> 
    </form> 

У меня же проблема, как вы с undefined формой на $scope, но найти этот трюк с используя дополнительный объект form на SO. Plunk here.

+0

Спасибо. Мне удалось решить мою проблему, передав объект формы в качестве аргумента через кнопку формы: alfrag