2016-07-13 9 views
0

ここではわかりにくいものがあると思います...締め切りの締め切りにアプリケーションを作成したので、コントローラ、フィルタ、さらに静的なサービスをすべて作成しました1つのapp.jsファイル。コンポーネント内で角度フィルタが機能しない

私は現在、.component()モデルを使用してアプリケーションを分割し、より良いスタンドアロンサービスを作成してdbからライブデータを取得するよう取り組んでいます。コンポーネントへの変換は順調に進んでいますが、フィルタを使用しています。それらはまだ元のapp.jsにあり、コントローラーがそこに定義されたときにうまくいきましたが、新しいコンポーネントテンプレート内でフィルターが機能していないように見えます。コンポーネントテンプレートの値にフィルタを適用すると、値は返されず、ページに何も表示されません。

例フィルタ:

app.filter('commaDelimitedNumber', function(){ 
    return function(val){ 
     var v = (val !== undefined) ? val.toString() : '0'; 
     return v.replace(/\B(?=(\d{3})+(?!\d))/g, ','); 
    }; 
}); 

コンポーネントからの呼び出し:

<div>{{ $ctrl.metric.shortVals[$ctrl.currentFilter] | display:[$ctrl.currentFilter] | commaDelimitedNumber }}</div> 

余分ノート...フィルタを含む成分は、このような構造を使用して、サブコンポーネントである:

angular.module (index.html including the app.js file) 
    <metrics-component> (component .js file with template html file which contains...) 
     <metrics-list-component> (component .js file with template html file which contains...) 
     <metric-component> (component .js file with template html file which contains...) 
      <div>{{ 12345678 | commaDelimitedNumber }}</div> 
+0

*サブコンポーネント*とはどういう意味ですか?これらのファイルをHTMLでどのようにマージ/インクルードしますか?フィルタが見つからない場合は、例外をスローする必要があります。 JSコンソールにエラーはありますか? – fracz

+0

コンソールにエラーはありません。 「サブコンポーネント」とは、コンポーネントがindex.htmlにあるコンポーネントの子であるコンポーネントの子であることを意味します。コンポーネントは実行時に.component()構造体を介して "マージ"されます。上記の例をより明確にするために、この例を修正します。 – Eric

答えて

0

ええと...問題が見つかりました。それは問題であったコンポーネント/フィルタコンボではなく、コンポーネントを通さなかったデータの一部でした。私は過度の複雑な問題を予想していたし、それは見落としていた。おっとっと!

関連する問題