/ / Uncaught TypeError: $ range.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 - це контролер форми, а не obj-контролер