javascript - knockout.js 未从 json 映射可观察数组

标签 javascript knockout.js

无法将 json 映射到可观察数组。我使用教程中的代码 ( http://learn.knockoutjs.com/ )。

function Movie(data) {
    this.name = ko.observable(data.name);
    this.description = ko.observable(data.description);
    this.duration = ko.observable(data.duration);
    this.id = ko.observable(data.id);
    this.imdb_id = ko.observable(data.imdb_id);
    this.original_name = ko.observable(data.original_name);
    this.poster = ko.observable(data.poster);
    this.type = ko.observable(data.type);
    this.year = ko.observable(data.year);
}

function MovieListViewModel() {
    // Data
    var self = this;

    self.moviesArray = ko.observableArray([]);
    self.searchQuery = ko.observable();

    self.searchMovies = function () {
        $.getJSON("/api/v1/movies/search/", {"query": self.searchQuery }, function(allData) {
            var mappedMovies = $.map(allData.movies, function(item) { return new Movie(item) });
            console.log(mappedMovies); // in this line output: [Movie, Movie, Movie, Movie, Movie, Movie]

            self.moviesArray(mappedMovies);
            console.log(self.moviesArray); // in this line output: []
        });    
    };
}

ko.applyBindings(new MovieListViewModel());

我不明白出了什么问题。

附注抱歉我的英语不好

最佳答案

这个

{"query": self.searchQuery }

应该是

{"query": self.searchQuery() }

这个

console.log(self.moviesArray)

应该是

console.log(self.moviesArray())

关于javascript - knockout.js 未从 json 映射可观察数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118784/

相关文章:

javascript - 使用CSS改变不透明度的颜色

javascript - document.getelementbyid 与 dom.byid

javascript - 在 HTML 文本上使用 Javascript 的 eval()

c# - JSON 作为 null 传递给方法参数

javascript - Knockout JS - 删除按钮未正确绑定(bind)

knockout.js - 阻止 KnockoutJS 使用 jQuery.tmpl

javascript - 从字符串中提取信息

javascript - Angular2用javascript突出显示html字符串中的一些单词

binding - knockout 动态绑定(bind)问题

javascript - 在 foreach 中加载所有项目后,Knockoutjs 组件回调