2017-02-16 85 views
1

我有一個服務:Angular2服務的領域的問題

@Injectable() 
export class MyService implements IMyService { 
    myServiceArray: Array<string> = ["hi", "hello", "yoyo"]; 
} 

此項服務,更新字符串ngModel的陣列組件注入。當我嘗試從組件或服務打印數組時,一切工作正常(也就是使用ngModel更新數組)。

我還@Inject在另一個1.

@Injectable() 
export class AnotherService implements IAnotherService { 

    constructor(public myService: MyService) { 
    } 

    printValues() { 
    console.log(this.myService.myServiceArray); 
    } 
} 

當我調用函數printValues()這樣的服務,[ 「喜」, 「你好」, 「YOYO」]即使印刷如果我更新的值帶模型的陣列!

我在做什麼錯?

編輯:

組件的代碼如下。

@Component({ 
    selector: 'app-root', 
    providers: [MyService], 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 

export class AppCustomerData implements IAppCustomerData { 

    constructor(public myService: MyService) { 
    } 
} 
+2

你在哪裏提供服務('@Component()'或'@NgModel()')? –

+0

我把組件的代碼。 [(ngModel)] ='...'位於組件的templateUrl中。 – Nano

回答

2

你要看看你注入相同的服務來說,如果你有每一個有它自己的陣列服務的多個實例。

我會嘗試使用本地存儲將數據存儲在服務上,比你可以有多個實例,每個人都可以編輯或返回相同的值: How to store token in Local or Session Storage in Angular 2?

也許這個回答您的問題: How do I create a singleton service in Angular 2?

+0

OMG你是對的!我實際上是創造更多的相同服務的實例。有沒有辦法做到單身? – Nano

+0

查看我添加到我的帖子中的鏈接。 – patrick

+0

謝謝,你寫的正是我需要的! – Nano