2016-05-04 13 views
0

私は指示文に属性とオブジェクト名をバインドしています。私は両方の値を小文字に変換する必要があります。私はそれにフィルターを使用してみました。動いていない。私は$ filterサービスを使ってみましたが、うまくいきません。これを達成するために誰かを助けてください。角度フィルタがディレクティブ式内で動作していませんか?

事前のおかげで..

指令コード:

bosAppModule.directive('layoutTableCellControlControlRender',['$compile','$filter', function($compile,$filter){ 
    var layoutTableCellControlRenderObj={}; 
    linkFnTableCellControlRender=function(scope, element, attributes) { 
     scope.controlData="NOCONTROLDATA"; 
     scope.kendoOptions={}; 
     //scope.field = $filter('lowercase')(scope.field); 
    }; 
    layoutTableCellControlRenderObj.scope={field:"@",tranobj:"@" }; 
    layoutTableCellControlRenderObj.restrict='AE'; 
    layoutTableCellControlRenderObj.replace='true'; 
    layoutTableCellControlRenderObj.template="<div field={{tablecellcontrol.attributename | lowercase }} tranobj={{tablecellcontrol.objectname | lowercase}}>" + 
              "</div>"; 
    layoutTableCellControlRenderObj.link = linkFnTableCellControlRender; 

    return layoutTableCellControlRenderObj; 
}]); 
+0

のですか? –

+0

@ChrisHermut内部テンプレートフィールドです。{{tablecellcontrol.attributename |小文字}} tranobj = ** {{tablecellcontrol.objectname |小文字}} – bagya

+0

@ChrisHermut - 私の問題があることを願っています。 – bagya

答えて

0

あなたはWhat is the difference between '@' and '=' in directive scope in AngularJS?

をチェックして、、二ためにそれらのスコープのプロパティの定義については、そのパラメータに=を使用する必要があります双方向モデルバインディング

layoutTableCellControlRenderObj.scope={field:"=",tranobj:"=" }; 

チェックここでは、この単純化されたデモ:あなたのフィルタ定義がhttp://jsfiddle.net/juanmendez/k6chmnch/

+0

ええと.2つの方法でバインディングはOKです。しかし、なぜフィルタが式では機能していないのですか? – bagya

+0

@を使用すると値を渡していないので、** = ** – shershen

+0

を使用してください。 "="を使ってみました。次に、エラーが発生します - 構文エラー:{{tablecellcontrol.attributename}}] .https://docs.angularjs.orgで始まる式[{{tablecellcontrol.attributename}}}の2列目のトークン '{'キーが無効です。 /error/$parse/syntax?p0=%7B&p1=invalid%20key&p2=2&p3=%7B%7Btablecellcontrol.attributename%7D%7D&p4=%7Btablecellcontrol.attributename%7D%7D – bagya

関連する問題