1

完全一致を使用できるように、AngularJS関数filterFilterを変更しました。したがって、「1」を検索すると、「1」のみが表示され、「11」、「12」などは表示されません。

function filterFilter() {
  return function(array, expression,exact) {
  ...
    var search = function(obj, text){
    ...
      case "string":
        return exact?('' + obj).toLowerCase() === text:('' + obj).toLowerCase().indexOf(text) > -1;

これで、次のように使用できます。filter:{id:section.sectionDictId}:true

しかし、Angularのソースを変更せずにこの関数を拡張するにはどうすればよいですか?私はこれを見つけましたangularjsの既存のフィルターを拡張またはオーバーライドする方法は?しかし、それは私が思う別のケースです。

また、このhttps://groups.google.com/forum/#!msg/angular/v-WjFF-iR88/XSXRhkGhf_sJは機能しません

編集 提案どおりに、新しいフィルターを追加しました。filterFilterをコピーし、必要に応じて変更しました。関数getterとisFunctionもangular.jsからコピーする必要がありましたが

4

1 に答える 1

3

必要なことを実行する独自のフィルターを作成することもできます。少なくとも私が知っているように、この関数の内部動作を変更する方法は実際にはありません。その上、あなたがやりたいことは、Angularの「フィルター」フィルターの文書化された動作とは根本的に異なるように思えます。オリジナルを変更した場合、次の開発者を混乱させるだけです。

于 2012-10-17T13:43:40.890 に答える