の問題は、私はsearchfield、ドロップダウンからSelectedValueの、およびページ番号を持っているノックアウトを使用してページを持っている...Knockout.JS:self.myObservableは関数ではありません、コード順
これらはすべてでをを初期化されます特に最初の実行/ページアクセスのために、defaultvaluesに設定..
問題は、私は私が私が知っている次のエラーに
"self.selectedTeamId is not a function()"
を得ている理由を理解しないということである。これは、と何かである必要があります"オーダーオーダーfのもの "を使用しているので、はまだに初期化されています。
私の間違いを訂正することはできますか?
CODE:
$(document).ready(function() {
var ViewModel = function() {
var self = this;
self.photos = ko.observableArray();
self.selectedTeamId = ko.observable(0);
self.searchString = ko.observable('');
self.pageNumber = ko.observable(1);
self.clearFilters = function() {
self.searchString(''); // set default to ''
self.selectedTeamId(0); // set default to 0
self.pageNumber(1); // set default to 1
self.getPhotos();
};
self.getPhotos = function() {
var photoParams = "?teamId=" + self.selectedTeamId() + "&search=" + encodeURIComponent(self.searchString()) + "&pageNumber=" + self.pageNumber();
$.get("api/Photo/GetPhotos" + photoParams,
function(data) {
self.photos(data);
}, "json");
};
};
var photosModel = new ViewModel();
ko.applyBindings(photosModel, document.getElementById("photoarchive"));
// THE NEXT LINE GIVES THE ERROR (self.selectedTeamId())
var photoParams = "?teamId=" + self.selectedTeamId() + "&search=" + encodeURIComponent(self.searchString()) + "&pageNumber=" + self.pageNumber();
$.get("api/Photo/GetPhotos" + photoParams,
function(data) {
photosModel.photos(data);
}, "json");
});
「次の行にエラーが発生しました」と書かれているのは、実際のコード行が重複しているか、質問内で 'self.getPhotos'の内容を繰り返すだけですか? –
いいえ..これは完全なコードです。おそらくもっとよく書かれているかもしれません(api呼び出しを複製しません)。ページの読み込み時に1つのAPIコールが実行され、getPhotos()が1つ呼び出されます。 –