我是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>
答案 0 :(得分:0)
我并非100%确定为什么会这样,但我将所有脚本声明移到了我的Index.cshtml文件的底部(它们先前已在顶部声明,但在标记之外。
将它们放在我的主要容器外面的底部,按照它们在原始帖子中的顺序修复问题,现在一切都是绑定好的。谢谢,全部!