2013-10-16 160 views
0

我要動態地顯示我的記錄的字段名稱:顯示領域

例子:

,如果我有這三個記錄

{ 
    "_id": { 
     "$oid": "blahblah" 
    }, 
    "firstName": "Jon", 
    "lastName": "Doe", 
    "age" : "55" 
} 
{ 
    "_id": { 
     "$oid": "blahblahblah" 
    }, 
    "firstName": "Johnny", 
    "lastName": "Doedoe", 
    "weight" : "555lb" 

} 

我想顯示什麼我的網頁angularjs是:

名:Jon

名字:李四

年齡:55


姓:約翰尼

名字:Doedoe

重量:555lb

我知道如何獲得特定的值,例如獲得第一名我可以做到這一點:$ scope.person.firstname(這當然是一個例子),但我怎麼能得到標籤「名字」。我如何要求angularjs獲得所有標籤?

感謝

回答

1

你必須查詢寫信給你的數據庫來獲得這些記錄,這取決於您的服務器查詢將有所不同的。以下是呼叫

function getNames() { 
    db.collection.find().toArray(function(data, err) { 
     if (err) 
      //do something 
     else 
      res.send(data); 
    }); 
} 

的節點版本現在,從角,使GET呼叫服務器:

$http.get(url).success(function(data) { 
    $scope.names = data; 
}); 

現在你有$scope.names設置爲您從SERV數據的陣列。使用一個ng-repeat顯示這一切:

<div ng-repeat="name in names"> 
    <span ng-repeat="(key, val) in name">{{key}}:{{val}}</span> 
</div> 

就是這樣(當然,基本上,無疑你必須調整這個)。

+0

但問題是我不想先寫,最後,年齡。我希望它是動態的。像 ''

foreach(values as key=>value) key : value
我 知道這是不是一個正確的代碼,但它只是幫助你明白我想做的事!謝謝 – user

+0

@user - 編輯,以適應這一點。 – tymeJV

+0

這是有效的。但是我爲你解決了最後一個問題。如果我只顯示一個人。所以在我看來,如果我顯示顯示名稱的{{person.name}}。如果想要做同樣的事情,則不起作用: {{key}}:{{val}} 在我的js中,如果我想要顯示來自人的數據,如果我做了一個警報($ scope.person.name);有用!所以我想顯示所有的標籤:值,但在一個單一的視圖。可能嗎 ? – user

0

不知道您是否將Express和Jade與Angular結合使用,但是如果您不想發出單獨的http請求(取決於您的應用程序的配置方式),則可以編寫可重用的角度服務與任何控制器。

該服務的目的是要搶JSON,放入當前的範圍,使您的控制器可以使用它。您也可以在每個頁面(即在每個控制器中)注入此服務依賴項,並且它會爲您加載文檔。

博客文章和full repo here