Я хочу знать, в чем цель $scope.reset();
в функции контроллера? Сброс, похоже, работает без этого кода, но документация говорит об использовании этого кода, и я не могу понять, почему:
<body ng-app="myapp" ng-controller="resetController">
<label>Enter name</label><input type="text" ng-model="name"/>
<label>Enter emailid</label><input type="text" ng-model="email"/>
<button ng-click="reset()">Reset</button>
<script>
angular.module("myapp",[])
.controller("resetController", function($scope)
{
$scope.reset = function()
{
$scope.name = "";
$scope.email = "";
}
$scope.reset(); /* not sure why we need this */
});
</script>
</body>
вы спрашиваете /* not sure why we need this */
$scope.reset = function(){
$scope.name = "";
$scope.email = "";
}
$scope.reset(); /* not sure why we need this */
Фактически он вызывает функцию reset()
при первом запуске контроллера, поэтому перед тем, как у вас есть время, чтобы поместить anythink на два входа. Лучше объявлять поля перед их использованием, чтобы избежать "неопределенной" ошибки на стороне контроллера. в этом конкретном случае это ничего не меняет, но, может быть, в этом примере они делают другое.
Вы можете попытаться поставить предупреждение внутри функции, оно должно вызвать его при первом запуске и каждый раз, когда вы нажимаете на reset()
$scope.reset = function(){
alert("call to reset");
$scope.name = "";
$scope.email = "";
}
<body ng-app="myapp" ng-controller="resetController">
<label>Enter name</label><input type="text" ng-model="name"/>
<label>Enter emailid</label><input type="text" ng-model="email"/>
<button ng-click="reset()">Reset</button>
<script>
angular.module("myapp",[])
.controller("resetController", function($scope)
{
$scope.reset = function()
{
$scope.name = "";
$scope.email = "";
}
$scope.reset(); /* not sure why we need this */
});
</script>
</body>
Это ваш код. Теперь посмотрим, у вас есть ng-click="reset()"
. Это вызывает метод $ scope.reset внутри контроллера, поэтому поля очищаются.
Как вы хотите знать, что: $scope.reset();
/* не уверен, зачем нам это нужно */
НЕТ, вам это не нужно, если только вы не вызываете этот метод из своего представления. $scope.reset()
используется внутри контроллера, когда вам нужно вызвать метод при загрузке страницы.
* Я думаю, что $scope.reset()
может использоваться для очистки полей при первой загрузке страницы.
Попробуйте этот путь
<body ng-app="myapp" ng-controller="resetController">
<label>Enter name</label><input type="text" ng-model="fromData.name"/>
<label>Enter emailid</label><input type="text" ng-model="fromData.email"/>
<button ng-click="reset()">Reset</button>
<script>
angular.module("myapp",[])
.controller("resetController", function($scope)
{
$scope.fromData = [];
$scope.reset = function()
{
$scope.fromData = [];
}
});
</script>
name
иemail
$scope.reset();
с контроллера @pixelbits. Так в чем же тогда его цель?