-1

ユーザー オブジェクトを含むオブジェクトを md-autocomplete に入力したいと考えています。ファクトリを介して JSON 形式で取得され、$scope.users. Angular ビューアーを使用して、コンソールでオブジェクトを確認できます。

users:
    user_id:
        display_name: "value"
        first_name: "value"
        last_name: "value"
    user_id:
        display_name: "value"
        first_name: "value"
        last_name: "value"
    etc...

モデル値をモデルに設定しuser_id、表示テキストを にしたいdisplay_name。これは可能ですか?私は試しました(ドキュメントによると、属性のみmd-itemsが必要なはずです

<md-autocomplete md-items="u in users"></autocomplete>

しかし、それは何もしません。「基本的な例」に従うこともありません

<md-autocomplete md-selected-item="videoInfo.lineUp.1" md-search-text="looseheadSearchText" md-items="u in users" md-item-text="u.display_name"></md-autocomplete>

編集

usersオブジェクトを取得するために使用するコードは次のとおりです。

angular.module("app").controller("MainController", ["$scope", "userRepository", function ($scope, userRepository) {
    userRepository.get(function(data) {
        $scope.users = data;
    });

app.factory("userRepository",
    function($resource) {
        return $resource("/wp-content/themes/zerif-lite-child/inc/get_users.php");
    });
4

2 に答える 2

1

質問をする前に、必ず最初にドキュメントを確認する必要があります。

少なくとも次のようなものが必要だと書かれています。

<md-autocomplete
      md-selected-item="selectedUser"
      md-search-text-change="searchTextChange(searchText)"
      md-search-text="searchText"
      md-selected-item-change="selectedItemChange(item)"
      md-items="item in querySearch(searchText)"
      md-item-text="item.display_name"
      md-min-length="0"
      placeholder="What is your favorite User?">
    <md-item-template>
      <span md-highlight-text="searchText" md-highlight-flags="^i">{{item.display_name}}</span>
    </md-item-template>
    <md-not-found>
      No states matching "{{searchText}}" were found.
    </md-not-found>
  </md-autocomplete>

それが役に立てば幸い

アップデート

searchQuery()何かを入力するたびに呼び出される関数です。基本的に必要なのは、何も書かれていない場合はすべてのユーザーを返すか、オートコンプリート入力に書かれているものを名前に含むユーザーのみを返す関数です。

例で行われていることを正確に行うべきではありません。あなたは実際の$httpリクエストを使用していて、そうではないからです。タイムアウトやマップなどのさまざまな機能を使用してシミュレートするだけです。関数は次のようになります。

$scope.searchQuery = function(searchText){
     return userRepository.get(searchText);
}

それでおしまい。

thisの代わりに使用することに関しては$scope、これはJohn Papaが角度のあるスタイルガイドで推奨しているものです。彼は$scope、より特定の条件でのみ使用する必要があると述べています。

于 2016-09-05T19:27:35.750 に答える