Breeze.js查询根本没有更新淘汰视图

时间:2015-04-07 22:05:28

标签: javascript entity-framework knockout.js breeze

我是Breeze的新手,并且正在努力将微风查询的结果链接到一个淘汰的可观察数组,然后数组在填充时不更新视图。我找到了this questoin,这是一个类似的问题,但是我的第一次也不会绑定。我确实试过了那个帖子中建议的一些东西,但没有运气。

我一直在使用Breeze.js ToDo演示(here)。使用console.log,我的数据来自我的查询,看起来与演示代码中的数据相同。该查询从我正在尝试的表中提取啤酒厂列表,现在,要绑定到列表(最终是下拉列表)。我在这里缺少一些小东西吗?在此先感谢您的帮助!

查看型号代码:

viewModel = (function () {
    var self = this;

    self.breweries = ko.observableArray();

   function getBreweries() {
        dataService().getBreweries().then(querySucceeded).fail(queryFailed);

        function querySucceeded(data) {
            self.breweries(data.results);
        }
        function queryFailed(error) {
           alert(error);
        }
    }

   getBreweries();

});

ko.applyBindings(viewModel);

dataService Code(在一个单独的文件中,但数据出来就好了):

dataService = (function () {

    var serviceName = '/breeze/BeerMatch/'; //route to Breeze Web API Controller
    var manager = new breeze.EntityManager(serviceName);

    return {
        getBreweries: getBreweries
    };

    function getBreweries() {
        var query = breeze.EntityQuery.from("Breweries");

        return manager.executeQuery(query);
    }


});

,最后,尝试绑定此列表的前端代码:

<script src="~/Scripts/jquery-2.1.3.js" type="text/javascript"></script>
<script src="~/Scripts/q.js" type="text/javascript"></script>
<script src="~/Scripts/knockout-3.3.0.js" type="text/javascript"></script>
<script src="~/Scripts/breeze.min.js" type="text/javascript" ></script>
<script src="~/Scripts/app/dataservice.js" type="text/javascript"></script>
<script src="~/Scripts/app/viewModel.js" type="text/javascript"></script>

<div>
    <div class="row" id="Home">
        <ul id="Breweries" data-bind="foreach: breweries">
            <li>
                <span data-bind="text: BreweryName"></span>
            </li>
        </ul>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

我并非100%确定为什么会这样,但我将所有脚本声明移到了我的Index.cshtml文件的底部(它们先前已在顶部声明,但在标记之外。

将它们放在我的主要容器外面的底部,按照它们在原始帖子中的顺序修复问题,现在一切都是绑定好的。谢谢,全部!