2015-11-02 54 views
1

在我的MySQL數據庫,我有一個JSON字符串這樣的列JSON對象:如何顯示存儲在MySQL與AngularJS

[{id:1,name:"VEZAN ZA PROJEKT 1"}, {id:1, name:'VEZAN ZA PROJEKAT 2'}] 

我想這樣的顯示器內部模板值:

<span ng-repeat="(key, val) in singletask.depencies"> 
    {{val}} 
</span> 

但得到的錯誤:

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: (key, val) in singletask.depencies, Duplicate key: string::, Duplicate value: :

如果我添加track by $index它就會顯示完整JSON STIN g與空格分隔...

任何人都知道什麼是問題?

EDIT

我拉JSON從對象的陣列。以下是我的對象的外觀:

{ 
    tasks : [ 
     0 : Object 
     1 : Object 
    ], 
    admin_id : 1, 
    created_at : "2015-11-02 16:16:27", 
    depencies : "[{id:1,name:" VEZAN ZA PROJEKT 1 "}, {id:1, name:'VEZAN ZA PROJEKAT 2'}]" 
} 

回答

1

您的數據從數據庫返回爲字符串,而不是JavaScript對象。要轉換它,你可以使用類似https://docs.angularjs.org/api/ng/function/angular.fromJson

如果你仍然有問題,發佈更多的代碼。

編輯: 在你的控制器,你收到數據後,您需要在您的任務的集合運行foreach循環(或者,如果你只有一個任務,只需做一次)來改變字符串對象成一個JavaScript對象。

$http.get("/api/data").then(function(result){ 
    $scope.singletask = result.data 

    angular.forEach($scope.singletask, function(value, key) { 
     value.dependencies = angular.fromJson(value.dependencies); 
    } 
} 

然後,當您轉到ng-repeat="(key, val) in singletask.dependencies"時,它將迭代數組對象。

+0

我也對此表示....但問題是我的json是在對象內...所以我需要內部模板來轉換該json字符串... –

+0

所以,你說的是你得到一個JavaScript對象返回,但它是類似{'data':[{id:1,name:「VEZAN ZA PROJEKT 1」},{id:1,name:'VEZAN ZA PROJEKAT 2'}]}?如果可以的話,請張貼更多關於你所得到的信息,以及你的期望。 –

+0

我更新了主要帖子....我得到了對象的數組,並且我在agngular模板中爲每個模板帶上了它們......但是我還需要在其中添加一個foreach以獲取所有'depencies'和depencies是json字符串...我希望顯示每個依賴名稱,,, –