我有一个单独的LocalizationModule
,其中包含LocaleService
作为依赖项的defaultLanguage
:
import { Injectable } from '@angular/core';
@Injectable()
export class LocaleService {
constructor(defaultLanguage: string) {
...
}
...
}
所以现在我必须提供工厂来在注入器尝试解决它时创建这个依赖项:
let localeServiceFactory = () => {
return new LocaleService('en-US');
};
export let localeServiceProvider = {
provide: LocaleService,
useFactory: localeServiceFactory
};
我的LocalizationModule
:
import { NgModule } from '@angular/core';
@NgModule({
providers: [
i18nServiceProvider
]
})
export class LocalizationModule { }
它捆绑为一个库并打包到npm注册表中。现在我想在我的许多应用程序中使用此模块,但我必须能够配置默认语言。如何用我自己的提供程序覆盖i18nServiceProvider?
答案 0 :(得分:4)
直接添加到@NgModule({
imports: [LocalizationModule],
providers: [localeServiceProvider],
})
export class AppModule {}
的提供商,始终覆盖导入模块的提供商。
func searchFromList(searchText:String, mainArray:AnyObject, key:String) -> AnyObject{
var searchArray:[AnyObject]
searchArray = []
if searchText.length > 0 {
if mainArray.count > 0 {
let predicate = NSPredicate(format: "\(key) contains[c] %@", searchText)
searchArray = mainArray.filteredArrayUsingPredicate(predicate)
}
}
return searchArray
}