2015-07-22 67 views
0

我在angularjs中定義了一個指令,該指令具有從數據庫中獲取數據的url。我顯示部分代碼。 我的指令是:Angularjs指令從url獲取數據

app.directive('getData', function() { 

return { 
restrict: 'E', 
    scope: { 
    url: '@', 
    suggestion: '=data' 
    }, 
    controller: ['$scope','$http', function($scope,$http){ 
    $http.get($scope.url) 
     .success(function (data) { 
     console.log(data);// display data 
     $scope.Items = data; 
     }); 
    }) 
    template: 
      <li\ 
      suggestion\ 
       ng-repeat="suggestion in suggestions track by $index"\ 
      </li>\ 
} 

現在,當我創建了一個指令,像這樣在HTML

<get-data url="/public/getEmployee" data="Items"></get-data> 

,但它沒有數據顯示,而在指令控制器相同的代碼是一個angularjs控制器正常工作。

+0

你指令定義的名稱是'getData'和您的使用情況是'我-directive'? – Chandermani

+0

@Chandermani類型錯誤。 –

+0

如果你打算在其他地方使用你提取的數據,你應該使用服務或工廠 – RobSeg

回答

1

您正在調用指令中的http請求並獲取指令中的數據,因此您無需在範圍內傳遞suggestion變量。

在模板item in Items track by $index中直接使用Items數組。

scope屬性中傳入的隔離範圍變量用於從外部依賴項獲取數據。

而且你的指令的使用應該是

<get-data url="/public/getEmployee"></get-data> 
+0

謝謝。它的正確和爲我工作。 –

+0

爲什麼我在控制器中使用這個指令不起作用? –