2017-01-17 14 views
2

php(YII2)アクションに基づいてmysqlデータベースからリストアップされるデータを取る必要のあるオートコンプリートフィールドを使用してIamを実行します。現在、オートコンプリートフィールドには静的な値が設定されています。 オートコンプリートフィールドに入力するコードを以下に示します。php URLから取得したデータからオートコンプリートフィールドを入力する

app.controller('DemoCtrl', DemoCtrl); 

function DemoCtrl($timeout, $q) { 
    var self = this; 

    // list of `state` value/display objects 
    self.states = loadAll(); 
    self.selectedItem = null; 
    self.searchText = null; 
    self.querySearch = querySearch; 

    // ****************************** 
    // Internal methods 
    // ****************************** 

    /** 
    * Search for states... use $timeout to simulate 
    * remote dataservice call. 
    */ 
    function querySearch(query) { 
     var results = query ? self.states.filter(createFilterFor(query)) : self.states; 
     var deferred = $q.defer(); 
     $timeout(function() { 
      deferred.resolve(results); 
     }, Math.random() * 1000, false); 
     return deferred.promise; 
    } 

    /** 
    * Build `states` list of key/value pairs 
    */ 
    function loadAll() { 
     var allStates = 'Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware,\ 
       Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana,\ 
       Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana,\ 
       Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina,\ 
       North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina,\ 
       South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia,\ 
       Wisconsin, Wyoming'; 

     return allStates.split(/, +/g).map(function (state) { 
      return { 
       value: state.toLowerCase(), 
       display: state 
      }; 
     }); 
    } 

    /** 
    * Create filter function for a query string 
    */ 
    function createFilterFor(query) { 
     var lowercaseQuery = angular.lowercase(query); 

     return function filterFn(state) { 
      return (state.value.indexOf(lowercaseQuery) === 0); 
     }; 

    } 
} 

loadall()関数では、YII2コントローラアクションから返されるデータベースから値を取得する必要があります。 URLを介してアクセスすることができます私のコントローラのアクションは以下の通りです

public function actionGetAllPackages() 
{ 
    $packages = \common\models\Packages::find() 
      ->select('name') 
      ->all(); 
    $name = ""; 
    foreach ($packages as $package) 
    { 
     $name = $name.', '.$package->name; 
    } 
    $name = substr($name, 2); 
    echo addslashes($name); 
} 

どのように私は、コントローラのアクションに印刷された値を角度関数にすることができますか?助けてください 。最初はYII2を使って角度をつけています。

答えて

1

はちょうどあなたのスクリプトでloadAll()メソッド内で、コントローラでのごGetAllPackages()関数に$のHTTPリクエストを呼び出し、allstatesにその値を代入し、事前に

感謝。

関連する問題