4

私のHTML:

<div id="body" ng-controller="ClientController">    
    <select kendo-drop-down-list>
        <option data-ng-repeat="client in Clients">{{ client.Name }}</option>
    </select>
    <button data-ng-click="loadClients()">Load Clients</button>
    <pre>http response data: {{ data }}</pre>
</div>

@Scripts.Render("~/bundles/index")

そして私のJavaScript:

function ClientController($scope, $http) {
    $scope.url = "/tracker/api/client";
    $scope.selectedClient = null;
    $scope.Clients = null;
    $scope.loadClients = function () {
        $http.get($scope.url).then(function (response) {
            $scope.data = response.data;
            $scope.Clients = response.data;
        });
    };
 }

ボタンをクリックすると、webapi サーバーから大量の json が取得されます。このデータは応答データ セクションに正常に表示されますが、ドロップダウンは常に空です。HTML ページには次のように表示されます。

<option value="? object:null ?"></option>

これは、データセットが適切に取得されていないことを意味します。私は明らかに角度のあるn00bです:)何が欠けていますか?

4

2 に答える 2

0

古い質問だと思いますが、剣道や安らぎのサービスを扱うときに、誰かがこれを参考にするかもしれません.

1 つの方法は を使用k-rebindすることです。次のようになります (テストしていません)。

    <select kendo-drop-down-list k-rebind="Clients.length">
      <option data-ng-repeat="client in Clients">{{ client.Name }}</option>
    </select>

実験することk-rebind="Clients"もできます。基本的に、変数またはオブジェクトが変更されると、剣道ウィジェットが再初期化されます。ソース: http://docs.telerik.com/kendo-ui/AngularJS/introduction

データが読み込まれる前にドロップダウンを表示する必要がない場合。を使用してみてくださいng-if。剣道が遅れる場合があります。

    <select kendo-drop-down-list ng-if="Clients.length > 0">
      <option data-ng-repeat="client in Clients">{{ client.Name }}</option>
    </select>
于 2015-04-15T10:52:03.240 に答える