ここではわかりにくいものがあると思います...締め切りの締め切りにアプリケーションを作成したので、コントローラ、フィルタ、さらに静的なサービスをすべて作成しました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>
*サブコンポーネント*とはどういう意味ですか?これらのファイルをHTMLでどのようにマージ/インクルードしますか?フィルタが見つからない場合は、例外をスローする必要があります。 JSコンソールにエラーはありますか? – fracz
コンソールにエラーはありません。 「サブコンポーネント」とは、コンポーネントがindex.htmlにあるコンポーネントの子であるコンポーネントの子であることを意味します。コンポーネントは実行時に.component()構造体を介して "マージ"されます。上記の例をより明確にするために、この例を修正します。 – Eric