
[英]How do I sort html tables in knockout using a Breeze navigation property?
[英]Setting Breeze Navigation Property in Knockout subscription
我正在使用Breezejs和Knockoutjs构建SPA(单页应用程序)。
尝试在淘汰订阅中设置导航属性时遇到问题。 在ko.subscription
的最后一行, console.log
函数向我显示了该实体,但是WebPresences
导航属性为null。
不确定ko.subscription
的事实ko.subscription
真的很重要,但是我已经能够在保存之前直接在调用的js函数中设置导航道具,因此我认为它具有一定的意义。
这是我的Entity
模型
public partial class Entity
{
public int Id { get; set; }
public string Name { get; set; }
public Nullable<int> WebId { get; set; }
public virtual WebPresence WebPresence { get; set; }
}
这是我的ko.subscription
和相关变量:
var vm = {
newEntity: ko.observable(datacontext.createBreezeEntity('Entity')),
newWebPresence: ko.observable(datacontext.newBreezeEntity('WebPresence')),
}
vm.newEntity().WebPresence.subscribe(
function (data) {
var self = this;
if (data === null)
self.target(vm.newWebPresence());
console.log(vm.newEntity());
}
);
最后但并非最不重要的是我的数据datacontext
createBreezeEntity: function (entityName) {
return manager.createEntity(entityName);
},
newBreezeEntity: function (entityName) {
return manager.metadataStore.getEntityType(entityName).createEntity();
}
我不明白您正在努力实现什么。
我非常有信心...的一件事是,您的datacontext.newBreezeEntity
创建了一个对象,该对象只是悬而未决,并且不属于任何导航属性。
让我们看一下您的datacontext.newBreezeEntity
方法:
return manager.metadataStore.getEntityType(entityName).createEntity();
实际上,这确实创建了一个名为entityName
类型的新实体。 但这是一个“原型实体”。 它不属于EntityManager
...当然不属于manager
实例。 它与任何其他特定实体(例如,您神秘命名的Entity
实体)都不相关。 这只是一个独立的实体。
我打赌您认为它属于manager
因为您是从那里开始表达的。 好吧,不是。 当您要求它的metadataStore
您就失去了与manager
的连接。
但是还有很多其他事情对我完全没有意义。 我不能告诉你为什么要订阅vm.newBreezeEntity
也不知道为什么它被称为“newBreezeEntity”,也就是它的关系应该是vm.newEntity
你也不觉得this
是订阅功能中。
也许您应该退后一步,并描述您想要此代码执行的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.