2016-07-15 18 views
0

サービスでフォーム入力値にアクセスする必要があります。Angular Js:AngularJS関数を使用して入力値を取得する方法

var emailId = document.getElementById("save_quote_email").value; 
console.log("emailId="+emailId); 
console.log("emailId2="+angular.element('#save_quote_email').val()); 

私はdocument.getElementById("save_quote_email").valueを使用して値を取得することができていますが、角度の機能を使用していないangular.element('#save_quote_email').val()

それはエラーになります

エラー:[jqLit​​e:nosel]セレクタを経由して見上げる要素がjqLit​​eでサポートされていません!参照:http://docs.angularjs.org/api/angular.element http://errors.angularjs.org/1.2.16/jqLite/nosel

完全なコードのために、このplunker http://plnkr.co/edit/Op1QDwUBECAosPUC7r3N?p=previewをご覧ください。

dtoresource.jsラインnumbe2で

答えて

1

あなたはIDによって選択するためにangular.elementを使用することはできませんまたはいくつかの他のセレクタのリンクはあなたによって提供ノート」

以下のように完全な情報を与える:に入れたままにしてくださいこの関数がタグ名/ CSSセレクタで要素を見つけられないことに注意してください。タグ名による検索の場合は、代わりにangular.element(document).find(...)または$ document.find()を試してみるか、標準DOM APIを使用してくださいたとえば、document.querySelectorAll() "

次のようにdocument.queryセレクタを使用することができます。

ここ
var queryResult = document.querySelector('#save_quote_email'); 
    var emailId2 = angular.element(queryResult); 

がplunker http://plnkr.co/edit/mC0JKTZpdnvqyBpihLRW?p=preview

を働いている。また、このhttps://stackoverflow.com/a/23626251/5621827はあなたが代わりに私はむしろ角度を使用して正しい道にあなたを指示するつもりですあなたの質問に答えるしようとしているの

0

を打者それを理解するのに役立ちます。 入力値を決して選択しないでください。これはng-modelのためのものです。 ng-modelは入力を値にバインドします。値が変更されると、Angularは自動的にスコープ値を更新します。データを取得する機能は必要ありません。

私はあなたのplunkrコードのうち、頭や尾をすることはできませんが、あなたはこれを行うべきではありません。また、あなたは、工場からのDOMにアクセスしようとしている

var queryResult = document.querySelector('#save_quote_email'); 

、あなたはむしろ必要な値を渡す必要がありますファクトリの公開された関数に渡し、コントローラ内の関数を呼び出します。あなたはそのようなあなたの入力のための単純スコープ値を使用する必要がありますautoQuoteCtrlお使いのコントローラで

$scope.email = ""; 

そして、あなたのインデックスに入力は次のようになります。

<input type='text' ng-model="email" /> 
{{ email }} 

をのような複雑な変数を使用しないでください。スコープ内でAutoQuote.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails [0] .EmailAddressを使用する場合は、リソースから受信したときに値を割り当てる必要があります。

$http({url: url}).then(function (rs) { 
    $scope.email = rs.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails[0].EmailAddress; 
} 
関連する問題