0
モックアップで先読み機能を実装しようとしましたが、先読みの値が変更されてテーブルコンテンツが更新されますが、私はバックエンドのためのノードでマングースORMでのMongoDBを使用し、Angularjsエラー:[filter:notarray]予想される配列ですが、先読みで{
Angularjs Error: [filter:notarray] Expected array but received: {}
vm.getEnterprises = function(term){
vm.selected = undefined;
return $http.get(path +'/enterprise/'+ term + '/search')
.then(function(response){
vm.customEnterprises = response.data;
vm.showcontent = true;
vm.defaultcontent = false;
return response.data;
console.log(response);
});
}
、APIコードは、
ですvar mongoose = require('mongoose');
var enterprise = mongoose.model('enterprise');
var search = function(req, res){
var name = req.params.name;
var regexValue = '\.*' + name ;
\t \t enterprise.find({'name': new RegExp(regexValue, 'i')},function(err, data){
\t \t \t if (err){
\t \t \t \t console.log('err',err);
\t \t \t } else {
\t \t \t \t return res.json(data);
\t \t \t \t console.log(data);
\t \t \t }
\t \t });
}
module.exports = {
\t searchEnterprise : search
};
マイ角度UIコードは、
input type="text" id="search" ng-model = "vm.selected" class="form-control input-md enable collapse" placeholder="search for an enterprise" uib-typeahead = "name as enterprise.name for enterprise in vm.getEnterprises($viewValue)| filter:$viewValue | limitTo : 3 ">
vm.getEnterprises($ viewValue)にテンプレートを変更する私はそれを呼び出すことが行われることになるかというscope.retdataを$変更した場合、バックエンドでAPI呼び出しを行う関数を呼び出します。 – Idlliofrio
私が意図したことは 'return response.data'の代わりに' vm.getEnterprises'の中にあり、応答データをスコープレベルの変数に代入し、あなたのテンプレートがそれにアクセスできることを確認してから、 'vm.getEnterprises($ viewValue)'その変数 –
Btwには、 '$ http.get'の' return'も必要ないと思います。つまり、あなたの関数 'vm.getEnterprises'は基本的に何も返しませんが、APIを呼び出してデータを取得し、そのスコープレベル変数にデータを格納します。そして、 'uib-headhead'は約束が解決されたら、そのスコープレベル変数の変化を検出するはずです。 –