/ / Uncaught TypeError: $ scope.mvp. $ SetUntouched не е функция angularjs 1.4 - javascript, css, angularjs

Uncaught TypeError: $ scope.mvp. $ SetUntouched не е функция angularjs 1.4 - javascript, css, angularjs

Получавам след грешка, докато се опитвам да премахна класове ngTouch от моя формуляр. Тази грешка ясно отразява това, което използвам angularjs1.4 който вече има тази функция. Все пак все още получавам тази грешка

$scope.mvp.$setUntouched()
VM3202:1 Uncaught TypeError: $scope.mvp.$setUntouched is not a function
at n.eval (eval at evaluate (unknown source), <anonymous>:1:12)
at Object.InjectedScript._evaluateOn (<anonymous>:895:55)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluateOnCallFrame (<anonymous>:954:21)
at n.$scope.resetPerson (http://localhost:55607/app/controller/personController.js:20:19)
at fn (eval at <anonymous> (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js:212:83), <anonymous>:2:224)
at http://localhost:55607/Scripts/angular-touch.min.js:12:197
at n.$get.n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js:134:493)
at n.$get.n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js:135:217)
at HTMLButtonElement.<anonymous> (http://localhost:55607/Scripts/angular-touch.min.js:12:179)

Ето моя CSS

input.ng-invalid.ng-touched.ng-pristine {
border-color: #FA787E;
box-shadow: 0 0 10px #FA787E;
}

input.ng-valid.ng-touched {
border-color: #78FA89;
box-shadow: 0 0 10px #78FA89;
}

Метод за нулиране на контролера

$scope.resetPerson = function () {
angular.copy({}, mvp);
$scope.init();
$scope.mvp.$setPristine();
$scope.mvp.$setUntouched();
}

Определяне на формата

<form novalidate name="mvp" class="form-horizontal" role="form">

Това е въпрос на CSS, както аз дефинирах?

РЕДАКТИРАНЕ

Успях да го направя. Проблемът беше в моя метод за нулиране в контролера.

$scope.resetPerson = function () {
angular.copy({}, $scope.person); //this fixed the issue
$scope.init();
$scope.mvp.$setPristine();
$scope.mvp.$setUntouched();
}

Моят модел беше $scope.person и аз застанах angular.copy({}, mvp); вместо това означава, че настройвам формата mvp = {}. Въпреки това не разбрах защо получих грешка $ setUntouched не е функция

Отговори:

1 за отговор № 1

Проблемът е, че формулярът ви не се изпраща до ъгловата ви функция от името му.

 $scope.master = {};
$scope.reset = function(mvp) {
if (mvp) {
mvp.$setPristine();
mvp.$setUntouched();
}
$scope.person = angular.copy($scope.master);
};

Опитах се да отговоря на въпроса си с въпрос. Това не се случи (: Този трябва да ... да ме уведомите

Това не е дефинирано, защото сте задали формуляра си на обект с копието и setUntouched е контролер на формуляри, а не контролер на обем