2014-12-04 125 views
0

我從服務器返回數組,並填充本地$ scope.customers(我已在調試器中對此進行了驗證);不過,我似乎無法填充我選擇標籤與陣列:爲什麼選擇標籤不填充我的ng選項?

角控制器:

surchargeIndex.controller('SurchargeIndexController', [ "$scope", "customerService", "templateService", 
    function ($scope, customerService, templateService) { 
    customerService.getTest().then(function (customers) { $scope.customers = customers; }); 
    //templateService.getTemplates.then(function (templates) { $scope.getTemplates = templates; }); 
}]); 

CSHTML:

<div class="dropdown"> 
    <select ng-model="customerKey" ng-options="customer.Key as customer.Value for customer in customers"></select> 
    <button id="getTemplates" class="btn btn-primary" ng-click="getTemplates(customerKey)">Get Templates</button> 
</div> 

當我檢查選擇元素沒有什麼存在,但單:

<option value="?" selected="selected"></option> 

JSON字符串:

[ 
    { 
    Key: 500, 
    Value: "Test Customer 1" 
    }, 
    { 
    Key: 11304, 
    Value: "test Customer 2" 
    }, 
    { 
    Key: 11345, 
    Value: "Test Customer 3" 
    }, 
] 

服務:

surchargeIndex.service('customerService', [ 
    '$http', function ($http) { 
     this.getTest = function() { 
      return $http({ 
        method: "GET", 
        url: "api/Customer/GetTest", 
       }) 
       .success(function(data) { 
        return data; 
       }); 
     }; 
    } 
]); 

我用NG-reepat上的選項標籤(我知道這是不是首選方式),我得到15(項目的數組中的數字)空白選項嘗試。

我錯過了什麼?

+0

請問你的客戶對象數組中有一個鍵和一個值的財產?上面應該工作,我把一個快速jsfiddle放在一起,它填充下拉列表中的數據:http://jsfiddle.net/5hk40xqx/ – Patrick 2014-12-04 16:38:17

+0

看起來很好,提供的代碼。可能是因爲你錯過了完整實現中的某些東西。你可以包含'客戶'的結構,或者可以在小提琴中重現問題嗎? – kubuntu 2014-12-04 16:39:11

+0

@kubuntu新增json – Robert 2014-12-04 16:42:37

回答

2

傳遞給thensuccessCallback將以表示響應的對象的形式接收單個參數。

您要使用的data屬性:

customerService.getTest().then(function(result) { 
    $scope.customers = result.data; 
}); 

或者您可以使用success方法來代替。傳遞給此回調接收四個參數:

success(function(data, status, headers, config) { 

例子:

customerService.getTest().success(function(data) { 
    $scope.customers = data; 
}); 
相關問題