Ich habe gelesen this article auf Angular Validierung und dachte, es wäre gut, in meinem eigenen Projekt zu verwenden. Es funktioniert wirklich gut und ich möchte es erweitern Zugriff auf Methoden in anderen Controllern nach erfolgreicher Validierung des Formulars. Ich habe verschiedene Möglichkeiten ausprobiert, aber ich kann die Methoden im $ scope-Objekt nicht sehen.Angularjs Sharing-Methoden zwischen den Controllern
<!DOCTYPE html>
<html>
<head>
<link data-require="[email protected]"
data-semver="3.0.0"
rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<script data-require="[email protected]"
data-semver="1.0.8"
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="rcSubmit.js"></script>
<script src="loginController.js"></script>
<script src="loginApp.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<h1>Simple Login Form</h1>
<form name="loginForm" novalidate
ng-app="LoginApp" ng-controller="LoginController"
rc-submit="login()">
<div class="form-group"
ng-class="{'has-error': rc.loginForm.needsAttention(loginForm.username)}">
<input class="form-control" name="username" type="text"
placeholder="Username" required ng-model="session.username" />
<span class="help-block"
ng-show="loginForm.username.$error.required">Required</span>
</div>
<div class="form-group"
ng-class="{'has-error': rc.loginForm.needsAttention(loginForm.password)}">
<input class="form-control" name="password" type="password"
placeholder="Password" required ng-model="session.password" />
<span class="help-block"
ng-show="loginForm.password.$error.required">Required</span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary pull-right"
value="Login" title="Login">
<span>Login</span>
</button>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
Ich hatte gehofft, dass jemand mir sagen kann, was ich vermisse, um diese Arbeit zu machen. Ich habe eine plunkr gegabelt.
Könnten Sie ein bisschen präziser über das sein, was Sie erreichen möchten? Ich verstehe nicht, wie das Teilen von Methoden zwischen Controllern mit der Validierung zusammenhängt.Normalerweise besteht der Weg zur Validierung darin, eine Direktive zu erstellen und auf den Model-Controller zuzugreifen. –
Hallo Hugo, ich möchte auf einige Methoden zugreifen, die ich in einem gemeinsamen Dienst habe. Der Dienst funktioniert gut für andere Controller, aber wenn ich versuche, ihn mit diesem Validierungscode zu verwenden, kann ich auf die Methoden zugreifen. Wie könnte ich zum Beispiel im folgenden Code auf die Methoden in meinem Service zugreifen? Ich habe alles versucht, woran du denken kannst, aber ich werde immer noch undefiniert. // Controller für Login definieren var LoginController = ['$ scope', Funktion ($ scope) { $ scope.session = {}; $ scope.login = function() { // Prozess $ scope.session Warnung ('angemeldet!'); }; }]; – user686483