【发布时间】:2014-06-20 07:17:27
【问题描述】:
我正在使用 Durandal/Knockout/Breeze/WebApi 和 MVC4 作为后端开发一个网站。 我像这样通过微风查询我的 api:
var getCategories = function() {
var query =
entityQuery
.from('Categories')
.orderBy('Order');
return manager.executeQuery(query);
};
然后,在我的视图模型上:
function initCategories() {
service.getCategories()
.then(querySuccess)
.fail(queryFail);
function querySuccess(data) {
vm.categories(data.results);
};
其中 vm 是我的有界视图模型,类别当然是 observableArray。
最后,我的观点是:
<!-- ko foreach: categories -->
<div class="list_images">
<a data-bind="attr: { href: '#search/' + queryString() }" class="hover-shadow">
<img data-bind="attr: { src: image(), alt: name() }" width="240" height="180">
<h5 data-bind="text: name()"></h5>
</a>
</div>
<!-- /ko -->
这是 data.results 包含的屏幕截图:
它工作正常,除了需要使用括号。 使用“普通”视图模型,视图绑定中不需要括号。 我不明白为什么它只发生在微风对象(实体)中。
编辑 经过进一步调查,我注意到我的实体属于 proto._setCtor.proto 类型,而不仅仅是一个对象。为什么? 即使我使用微风管理器创建一个新实体 - 这是我得到的对象:( 这里有什么问题?
【问题讨论】:
-
问题是什么?我不太明白你遇到了什么问题
-
@PW Kad - 我的问题已经尖锐化了。我只是问为什么在这种情况下我需要这些括号,而在所有其他情况下,绑定声明正常工作。
标签: asp.net-mvc-4 knockout.js asp.net-web-api breeze durandal