私はWebアプリケーションで検索フィルタを実装しようとしています。私は良い記事を読んで、良いJsfiddlesを見つけました。KnockoutJSで検索するフィルタ
TypeName
で検索し、そのタイプ名の行を表示したいと考えています。 私は私のモデルでそれを実現したが、私が検索したとき、私が取得し、エラー: main.js:48 Uncaught TypeError: item.TypeName is not a function
も画面error
私のindex.html:
<div class="form">
<div class="form-group">
<input type="search" class="form-control" data-bind="textInput: query" autocomplete="off" />
</div>
</div>
<div id="tab1" class="col s12">
<ul class="collapsible" data-collapsible="accordion" data-bind="foreach:brickInfos">
<li data-bind="with: value">
<div class="collapsible-header">
<i class="material-icons">view_stream</i>
<p class="blue-text" data-bind="text: TypeName"></p>
</div>
</li>
</ul>
</div>
マイモデル:
function ViewModel() {
var self = this;
self.brickInfos = ko.observableArray([]);
db.query("BrickInfos/docs").then(function(result) {
var data = result;
console.log(data);
self.brickInfos(data.rows);
});
self.query = ko.observable("");
self.filteredBrickInfos = ko.computed(function() {
var filter = self.query().toLowerCase();
if (!filter) {
return self.brickInfos();
} else {
return ko.utils.arrayFilter(self.brickInfos(), function (item) {
return item.data.TypeName().toLowerCase().indexOf(filter) !== -1;
});
}
});
}
var db = new PouchDB('http://localhost:5984/helloworld');
var vm = new ViewModel();
ko.applyBindings(vm);
これがあると私のデータの見方:Json data on console
私のコードをどのように構造化すべきかいつも歓迎です、私はKnockoutJSで新しいです。あなたが取得している
{
"BrickInfos": {
"BrickInfos": [
{
"Properties": {
"Properties": [
]
},
"Implements": {
"Interfaces": [
{
"TypeName": "soemtypename"
},
{
"TypeName": "soemtypename2"
}
]
},
"Name": "AccessBareBoneApp",
"Description": "",
"TypeName": "soemtypename",
"AssemblyName": "string other safasgfas",
"Obsolete": true
},
{
"Properties": {
"Properties": [
{
"Name": "file",
"Description": "asfasf",
"ValidationType": 12,
"Converter": 12,
"EnumTypeName": "string1"
}
]
},
"Implements": {
"Interfaces": [
{
"TypeName": "soemtypename"
},
{
"TypeName": "soemtypename"
}
]
},
"Name": "File2",
"Description": "asfasfas",
"TypeName": "soemtypename",
"AssemblyName": "string other safasgfas",
"Obsolete": false
}
]
}
}
を見ることができる私はあなたが多分提供されたリンクを参照してくださいすることができませんよ私の最後からファイアウォールの問題。一般的なエラー情報を共有できますか?jsonサンプルを元の投稿に含めてください。 –
@supercool – Muli
これはhttps://jsfiddle.net/LkqTU/29455/のようなものです。あなたはそれが観測できないので、typeNameは未定義になっています。 –