0

angular2 beta 12 を使用すると、Firefoxで次のエラーが発生します。

EXCEPTION: Error: Uncaught (in promise): TypeError: pipe is undefined angular2.dev.js:23730:9

STACKTRACE: angular2.dev.js:23730:9

resolvePromise@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:543:32
makeResolver/<@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:520:14
Zone</ZoneDelegate</ZoneDelegate.prototype.invoke@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:332:20
NgZoneImpl/this.inner<.onInvoke@http://localhost:2068/node_modules/angular2/bundles/angular2.dev.js:2216:22
Zone</ZoneDelegate</ZoneDelegate.prototype.invoke@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:331:20
Zone</Zone</Zone.prototype.run@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:227:25
scheduleResolveOrReject/<@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:576:53
Zone</ZoneDelegate</ZoneDelegate.prototype.invokeTask@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:365:24
NgZoneImpl/this.inner<.onInvokeTask@http://localhost:2068/node_modules/angular2/bundles/angular2.dev.js:2208:22
Zone</ZoneDelegate</ZoneDelegate.prototype.invokeTask@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:364:24
Zone</Zone</Zone.prototype.runTask@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:263:29
drainMicroTaskQueue@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:482:26
ZoneTask/this.invoke@http://localhost:2068/node_modules/angular2/bundles/angular2-polyfills.js:434:22

私のコードとは関係ないので、角ばったバグだと思います。知ってる?回避策はありますか?

パイプ変数を宣言したことはありません。カスタム パイプを使用しているだけです。

import {Pipe, PipeTransform} from 'angular2/core';

@Pipe({
    name: 'myfilter',
    pure: false
})
export class MyFilterPipe implements PipeTransform 
{
    static _string:string = "string";

    transform (value:any[], [queryString]) 
    {     
        if (!queryString || queryString === '')
            return value;

        return value.filter (item => 
        {
            if (typeof item === MyFilterPipe._string)
            {
                return item.toLowerCase().indexOf (queryString.toLowerCase()) > -1;
            }

            for (var propertyName in item) {
                var propertyValue = item [propertyName];

                if (!propertyValue)
                    continue;

                if ((propertyValue + '').toLowerCase().indexOf (queryString.toLowerCase()) > -1)
                    return true;
            }
            return false;
        });
    }
}

Chrome、Safari、Edge で動作します どうもありがとう

4

0 に答える 0