/ / anglejsコントローラーの動作内のスコープにアクセスする方法-anglejs、angularjs-scope

angularjsコントローラの動作内のスコープにアクセスする方法 - angularjs、angularjs-scope

コントローラの動作内で$ scopeにアクセスしているときに問題が発生しました。コードは次のようになります。

<body id="main_body" ng-controller="FormController as frmCtrl">
<form id="form_991905" class="appnitro" name="loginForm" ng-submit="loginForm.$valid && frmCtrl.doLogin()" novalidate>
<div class="form_description">
<h2>Login Form</h2>
</div>
<ul>
<li id="li_1" >
<label class="description" for="username">Username </label>
<div>
<input name="username" class="element text medium crequired email" type="email" ng-model="login.username" form-validator />
<div class="errBx"></div>
</div>
</li>
<li id="li_2" >
<label class="description" for="password">Password </label>
<div>
<input name="password" class="element text medium crequired" type="text" ng-model="login.password" form-validator/>
<div class="errBx"></div>
</div>
</li>
<li class="buttons">
<input id="saveForm" class="button_text" type="submit" name="submit" value="Submit"/>
</li>
</ul>
</form>

メソッド内の$ scope.login.usernameにアクセスしたい

controller code.....

this.login = function(){
console.log($scope.login.username);
}

// controller code

回答:

回答№1は1

「controllerAs」構文を使用しているため、 $scope 利用できます。ビューでは、次の方法でアクセスできます frmCtrl.login.username またはコントローラーで試すことができます this.login.username.

詳細については、こちらをご覧ください。 http://www.johnpapa.net/angularjss-controller-as-and-the-vm-variable/


回答№2の場合は0

あなたが使っている ctrl as 構文、したがって、 ng-model 次のように表示されます。

ng-model="frmCtrl.login.password"

機能は次のように変更する必要があります。

this.login = function(){
console.log(this.login.username);
}