下面的示例显示了一个使用 Json 填充的可观察数组,然后您可以根据“类型”将结果过滤到 2 个列表中。
在我尝试从 ajax 调用中加载完全相同的 Json 之前,这一切都很好!
奇怪的是,如果我在脚本中添加警报,它就会正常工作......
<h2>Brand</h2>
<ul id="list-dimensions" data-bind="foreach: filteredDimensions('BRAND')">
    <li>
        <div class="item">ID</div> <span data-bind="text: $data.id"</span>
    </li>
</ul>
<h2>Area</h2>
<ul id="list-dimensions" data-bind="foreach: filteredDimensions('AREA')">
    <li>
        <div class="item">ID</div> <span data-bind="text: $data.id"</span>
    </li>
</ul>
function ProductDimensionsViewModel () {
        var self = this;
        self.dimensions = ko.observableArray();
        var baseUri = 'api/product_dimensions.php';
        /*$.getJSON(baseUri, function(data){
            success: self.dimensions = data;
        });*/
        $.ajax({
            type: 'GET',
            url: baseUri,
            data: {},
            context: this,
            success: function(data) {
                self.dimensions = data
            },
            dataType: 'json'
        });
        self.filteredDimensions = function(type) {
        return $.map(self.dimensions, function(dimension) {
                if (dimension.type == type) {
                    return dimension;
                }
            });
        }
    }
        ko.applyBindings(new ProductDimensionsViewModel());