【发布时间】:2013-06-13 13:18:45
【问题描述】:
我正在通过第一次运行良好的微风.js 查询数据。第二次视图没有更新。
html
<a id="linkQDate">Order by Newest</a>
<a id="linkQScore">Order by Score</a>
<div id="questionWrapper">
<ul data-bind="foreach: results">
<li>
<strong><span data-bind="text: Score"></span></strong>
<span data-bind="text: Titel"></span>
</li>
</ul>
</DIV>
js
$(document).ready(function () {
var manager = new breeze.EntityManager('/breeze/dbentities');
var isApplied = false;
var dmodel;
$("#linkQDate").click(function () {
var query = breeze.EntityQuery.from("Questions").orderBy("Date");
manager.executeQuery(query).then(querySucceeded);
function querySucceeded(data) {
dmodel = data;
if (!isApplied) {
ko.applyBindings(dmodel, $("#questionWrapper")[0]);
isApplied = true;
}
}
});
$("#linkQScore").click(function () {
var query = breeze.EntityQuery.from("Questions").orderBy("Score");
manager.executeQuery(query).then(querySucceeded);
function querySucceeded(data) {
dmodel = data;
if (!isApplied) {
ko.applyBindings(dmodel, $("#questionWrapper")[0]);
isApplied = true;
}
}
});
});
【问题讨论】:
-
是 'data' observables 中的属性吗?
-
我使用的是 Bread.js 默认值。我不知道?也许不是?
-
我不是 KO 专家.. 希望有人能找到这个.. 我的两个想法是,1)属性不是可观察的,所以他们不会知道更新,或者 2)因为每次分配 dmodel = data 时,都会覆盖之前的绑定应用程序。您可能需要使用 ko.mappings 扩展将属性从一个“映射”到另一个。或者其他的东西?很抱歉没有太多帮助..
-
也可以看看here
-
Data.results 是一个可观察的数组。该链接没有帮助
标签: data-binding mvvm knockout.js breeze