【发布时间】:2015-06-12 16:13:48
【问题描述】:
我是 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 代码(在一个单独的文件中,但数据可以正常输出):
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>
【问题讨论】:
-
您是否尝试过将视图模型的关闭更改为“})();”代替 ”});” ?
-
我刚试了一下,没用。感谢您的回复
-
querySucceeded中的数据等于什么?
-
data 是在 dataService 中执行的查询返回的内容。这是直接来自 dataService 的样子:
[Brewery__Breeze_BeerMatch_Models, Brewery__Breeze_BeerMatch_Models, Brewery__Breeze_BeerMatch_Models]0: Brewery__Breeze_BeerMatch_Models1: Brewery__Breeze_BeerMatch_Models2: Brewery__Breeze_BeerMatch_Modelslength: 3__proto__: Array[0],这是 self.breweries 设置后的样子:function d(){if(0<arguments.length)return d.Wa(c,arguments[0])&&(d.X(),c=arguments[0],d.W()),this;a.k.Ob(d);return c} -
self.breweries(data.results());为您解决问题?
标签: javascript entity-framework knockout.js breeze