2015-05-25 18 views
0

我有這樣的代碼角:控制器作爲語法不更新數據

模板

{{ GC.objectList }}

控制器

var self = this; 
self.objectList = []; 


      myService.list().then(function (data) { 
       self.objectList = data.results; 
      }, function (error) { 
       console.log(error); 
      }) 

現在,當我從服務器獲取新的數據,那麼我的數據沒有得到在模板中更新。

但是,如果使用$範圍,而不是自我。然後它可以正常工作

+1

問題尋求幫助調試(「爲什麼不是這個代碼的工作?」)必須包括所期望的行爲,一個特定的問題或錯誤,並在最短的代碼要重現**它在問題本身**。請張貼您的標記,並在可能的情況下演示此問題。 – CodingIntrigue

+0

在調用myService.list()之後,你可以使用console.log(self.objectList [])嗎?我認爲這個變量是空的。你有tp返回data.results並在之後進行設置。像self.objectList = myService.list()。then(function(data){return data;}); –

+0

@gruberb我這樣做了,對象被填充了數據。唯一的問題是它沒有在模板中更新。它工作,如果我使用$ scope.objectList並在模板中使用{{objectList}},但不與自我。我認爲自己和範圍一樣,但我可能是錯的。可能是$ scope在該場景中使用 – user3214546

回答

0

任何需要對Angularjs中的視圖或操作方面產生影響的事情都應該使用$ scope obj。這就像你玩$範圍這是作爲創建每個控制器的新實例創建的。

因此,使用$範圍是正確的做法。

0

$範圍的對象,它是雙向的動態是angularjs爲您提供一個功能。 $ scope將幫助您將變量分配給對象,並且如果您在模板中進行更改,它也會自動反映到範圍對象中。

+0

我以爲自己也會這樣做 – user3214546