$の解析サービスのAngularJSで

およそ$公式APIを初めて目には、解析
$パーズ

役割を:関数としてAngularJS表現を変換するために
使用
$パース(式)

引数

AngularJSの文にコンパイルする必要があります:式
(地元の人々についての文脈、)returnsfuncを

コンテキスト[オブジェクト]:あなたのための文を解析するために、このオブジェクトを使用すると、文の(通常はオブジェクトスコープ)を解析する式が含まれ
、地元の人々 [オブジェクト]についての:コンテキスト変数のローカル変数については、変数の値のコンテキストをカバーするために有用です。
:関数は、次の3つの特性戻った

リテラル[ブール]:式は、最上位ノードのJavaScriptリテラルである
定数[ブール]:定数式は、組成リテラルはJavaScriptの完全で
割り当てる[FUNC(コンテキスト、ローカル)]:指定されたコンテキストでの発現の値を変更するために使用されてもよい


単に:$サービスは関数式に変換することができる解析。この関数は、パラメータは、コンテキストオブジェクトである、呼び出すことができ、通常の範囲です。

また、$この機能の発現を解析の復帰が割り当て性質を持っています。このプロパティはまた、所与のコンテキストにおける発現の値を変更するために使用することができる機能を割り当てています。


このサービスに適用するようにしてください
T1を:最初の例では、のは、簡単な式を解析してみましょう。

コードは以下の通りであります:

<DIV = NGアプリ"のMyApp"> 
    <DIV = NG-コントローラ"MyControllerによって"> 
        ParsedValue {{}} <の/ H1> <のH1> 
    </ div> 
</ div> 
angular.module( "MyAppの"、[] )
.controller( "MyController"、機能($スコープ、パース$){ 
    VARコンテキスト= { 
        名: "dreamapple" 
    }; 
    //ステートメントは、我々が解析したい表現が含まれているため、この解像度、
    //はそうすべき全体の接続+に続いて、二重引用符で無関係
    VAR =表現「『こんにちは』名前+」; 
    VAR = $とparseFuncパース(式); 
    $ = scope.ParsedValueとparseFunc(コンテキスト); 
}); 
の式:我々式は、解析したい
、コンテキスト(個人の理解)の解析式である:コンテキスト
parseFuncを:後で戻っ解析する機能です

:私たちは、プロパティ関数の戻り値のコンソールを見てみることができます

angular.module(「MyAppの」、[]は)
.controller(「MyController」、機能($スコープ、パース$){ 
    VARのコンテキストは= { 
        名:「dreamapple」
    }; 
    //この決議文は、我々が解析したい表現が含まれているため、
    //そうすべきでありません全体の接続+に続く引用符、関連付けられた
    VAR =表現「『こんにちは』名前+」; 
    VAR = $とparseFuncパース(式); 
 
    // falseに
    ;にconsole.log(parseFunc.literal)
    falseに// 
    にconsole.log (parseFunc.constant); 
    //は未定義
    にconsole.log(parseFunc.assignを); 
    //こんにちは
    はconsole.log(およびparseFunc()); 
    //関数(地元の人々についての自己は、){ 
    左、地元の人々についてのFn(自己を返す//、右); 
    //} 
    はconsole.log(及びparseFunc)。
 
    parseFunc scope.ParsedValue = $(コンテキスト); 
}); 
我々は、関数は、その属性が偽一定であることを特徴とする請求リテラルとparseFuncを、戻され、コンソールから知っている、とparseFunc()関数が無添加の実行コンテキストを返しません「こんにちは」の値。



T2:2番目の例では、我々は値入力ボックスを解析するために、再度解析$サービスを使用します

。<DIV = NGアプリ"MyAppの"> 
    <DIV = NG-コントローラ"によるMyController"> 
        <INPUTタイプ= "テキスト" = NGモデル"発現" /> 
        <DIV> ParsedValue {{}} </ div> 
    </ div> 
</ div> 
angular.module( "MyAppの"、[])
.controller( "MyControllerによって"、機能($スコープ、パース$){ 
    $スコープ。$ウォッチ( "表現"、機能(newValueに、OLDVALUE、コンテキスト){ 
        (newValueにIF!
            == OLDVALUE){ VAR parseFunc = $解析(newValueに)。
            $ scope.ParsedValue = parseFunc(コンテキスト)。
        } 
    })。
}); 
我々は、式入力ボックスの値が変化するが、我々はそれを解決しますいつでも、私たちは「1 + 1」を入力し、入力ボックスに試すことができます入力入力ボックスを監視し、変更$ウォッチを使用してから、次のように表示されます2は、以下に示されています。



T3:我々は第三の実施例で使用した深さ、解析サービス$比較

<DIV = NGアプリ"のMyApp">を
    <DIV = NG-コントローラ"によってMyController"> 
        の<div> ParsedValue {{}} </ div> 
    < / div> 
</ div> 
angular.module( "MyAppの"、[])
.controller( "MyControllerによって"、関数($スコープ、解析$){ 
    $ = {scope.context 
        追加:関数(A、B){リターンB + A;}、
        MUL:関数(A、B)* B} A {リターン
    } 
    $ scope.expression = "MUL(A、追加(B、C))"; 
    $ scope.data = { 
        :. 3、
        B :. 6、
        C:
    そして、parseFunc解析$ = VAR($ scope.expression);
        )(elem.bind(「クリック」、機能{
    そしてparseFunc scope.ParsedValue = $($ scope.context、$ scope.data); 
}); 
私たちは、結果が45であり、我々が一般的に理解することができることを確認することができ、解析サービスは$ scope.context提供コンテキストに従って$の$スコープを解決.expression文は、その後、$ scope.expressionはC 4に交換した場合、その結果は30であることを表現注意に$のscope.data変数を移入するためにデータを使用するので、45件の結果を得ます。



T4:4番目の例は、命令では、構文解析$サービスへのアクセスを使用して、カスタムプロパティの値を変更することです:

<divの私の-のattr =「obj.name」マイ・ディレクティブ>テスト</ div>の
app.directive(「myDirective」、機能($、パース$をログ){ 
    return関数(スコープ、elemは、attrsに){ 
		// "機能に私-ATTRの属性値を"解析
        VAR = $モデル解析(attrs.myAttr); 
		//モデルは今あります式の値を取得するために呼び出すことができる機能は、
		//このコード行は、スコープの出力値obj.nameます
        ; $のlog.log(モデル(スコープ)) 関数である」//'model.assign表現の値に更新するために使用されて
            model.assign(スコープ、「新しい名前」を )。
        })
    } 
}); 
	
私達は$解析サービスを必要とする理由上記の例では、完全に反映することができます。プロパティ値が名前であるので、我々は$の解析を持つことができない場合は、唯一の有効範囲は[attrs.myAttr]することができます。しかしながら、上記の例では、角括弧は有用ではありません。




転送:HTTP://blog.csdn.net/feiying008/article/details/50222829 

https://www.cnblogs.com/xujie520/p/5640850.html 




株式6つのゴールデンワード数式を「3売るためではない7は買いません」、パンクの唯一の購入株式は純資産の何百万人に勝ちます!
コンパス情報•頂新
 
の何か言いたい
$このサービスを解析するのトーキングAngularJSはあなたが理解することができます
4118の数読んで

公式のAPI $パースのパースの約$の役割を初めて目を:にAngularJS表現を変換します機能の使用状況$パース(式)argumentsexpression:...コンパイルする必要があります
ボーエンを
から:イーグル列 
$解析angular.js使い方のデモ
数638読書を

デモに$パースの使用Page20ページの「角度の権威ガイド」、正しい結果、背景をうまくいきません次のような変更を与えた後に、正しく実行することができないが、我々は、その使用が正しいか判断することはできません。あなたが参考のために何であるかを教えてください... 
ボーエン
から:Lambert0320ブログ
angular.js NG・リピート方式の中では、質問の$解析パラメータ:構文は、
数753を読んで
 
示すように、管理モジュールのバックグラウンドの役割をしているプロジェクトを開発するために、あなたはすべてトラバースする必要がありますユーザーの役割、およびユーザー・ロールのIDが、コンソールのイベントパラメータがangularjs公式を読んだ後、このような間違いの動作中にログアウトします、ユーザーの役割を追加するために編集イベントをクリックしてください... 
ボーエン
から:itkfdektxaのブログ
angularjs-1.3のコードが学んでいます- $解析
読書239の数を

、我々は、角SandboxingAngularExpressionsを見て、この時間。レクサーとパーサ:組み込みの方法について、コアが2を持っています。$解析は、誰もがそれについての詳細を知っている可能性があります。まあ騒ぎ、...見
ボーエン
から:liuyu5210ブログ
 
の$ .parser.parseは、()
4048を読み込み

ので、ページがレンダリングされたため、ダイナミックにeasuiスタイルのステッチで、いくつかのJavaScriptのDOM要素にあなたは)(手動一部または全部のページの$ .parser.parseのレンダリングを実行する必要がある; //すべてのページ$ .parserをレンダリング.... 
ボーエンを
から:Thinkingcaoのブログ
angularJS一般的なエラーが
569読み込み

エラー:[NGは:AREQ]対応ctrlErrorを見つけることができません:[$インジェクター:UNPR]モジュールが適切にエラーを注入するために失敗した:[ngModel:nonassign] NG-モデルは、右側の式エロではありません。.. 。
ボーウェン
から:miniminixuのブログ
AngularJS一般的なエラーの概要

  

おすすめ

転載: www.cnblogs.com/qqhfeng/p/11234602.html