- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我第一次使用 Knockback.js .
我正在研究 Knockback 概念验证,但我很难在保存模型时更新 View 模型。在这种情况下,发生的事情是服务器返回一个新的 Domain
对象,其中设置了 id
字段,这意味着该对象现在存在于后端。一旦发生这种情况,我希望 UI 发生变化以反射(reflect)它现在已保存的事实。
这是我使用的代码:
<table cellspacing="0" class="listing-table" id="domainListTable">
<thead>
<tr>
<th scope="col">
Domain
</th>
</tr>
</thead>
<tbody data-bind="foreach: domains">
<tr>
<td>
<!-- ko if:save -->
<a data-bind="attr: { href: domainEditLinkdomainId, title: domain},text : domain">
<span data-bind="text: domain"></span>
</a>
<!-- /ko -->
<!-- ko ifnot:save -->
<input type="text" maxlength="250" style="display:inline-block;" class="medium-text-field" data-bind="value: domain"></input>
<input data-bind="click: save" style="display:inline-block;" type="submit" value="Save New Domain" alt="" title=""/>
<!-- /ko -->
</td>
</tr>
</tbody>
</table>
<br />
<input data-bind="click: addDomain" type="submit" value="Add New Domain" alt="" title=""/>
<script type="text/javascript">
var Domain = Backbone.Model.extend({
defaults: function() {
return {
domain: "New Domain"
};
},
});
var Domains = {};
Domains.Collection = Backbone.Collection.extend({
model: Domain,
url: '/cms/rest/poc/${customerId}/domains/'
});
var domains = new Domains.Collection();
domains.fetch();
var DomainViewModel = kb.ViewModel.extend({
constructor: function(model) {
kb.ViewModel.prototype.constructor.apply(this, arguments);
var self = this;
this.save = kb.observable(model, {
key: 'save',
read: (function() {
return !model.isNew();
}),
write: (function(completed) {
return model.save({}, {
wait: true,
success: function (model, response) {
console.log(model);
console.log(response);
console.log(self);
},
error: function(model, response) {
alert("Oh NooooOOOes you broked it!!!11!")
}
});
})
}, this);
this.domainEditLinkdomainId = ko.dependentObservable(function() {
if(!this.save())
return "";
return "cms?action=domainDetail&domainID=" + this.model().id;
}, this);
}
});
var DomainsViewModel = function(collection) {
this.domains = kb.collectionObservable(collection, { view_model: DomainViewModel });
this.addDomain = function() {
this.domains.push(new DomainViewModel(new Domain()));
};
};
var domainsViewModel = new DomainsViewModel(domains);
ko.applyBindings(domainsViewModel);
</script>
问题似乎是 model.save()
完成的 XMLHttpRequest
在保存 kb.observable
之后才返回读取,因此 html 部分未成功更新,因为它仍然将 model.isNew()
视为 true。
我一直在考虑几个不同的想法,正如您可能看到的那样,包括在可观察对象上使用 valueHasMutated
方法来指示模型已更新,但我不能也不知道该怎么做。
如有任何帮助,我们将不胜感激!
最佳答案
您可以在模型上收听 change:id
事件。
只有当模型的状态从新状态变为持久状态时才会触发。
关于javascript - Knockback.js:当主干保存更新模型时,如何更新 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185985/
我将这个脚本附加到一个物体上,如果我的玩家遇到那个物体,它就会被击退。我有六个方向,它会被击退。这image将向您展示我的玩家可能被击退的不同方向。我的问题:X=0,Y=1(向上)和X=0,Y=-1(
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试使用 Knockback.js 设置一些新的东西,现在我遇到了一个与 knockout/knockback 集成有关的问题。问题是,我已经成功地编写了一个事件处理程序,它向 Objectiv
这是我第一次使用 Knockback.js . 我正在研究 Knockback 概念验证,但我很难在保存模型时更新 View 模型。在这种情况下,发生的事情是服务器返回一个新的 Domain 对象,其
如果我的主干模型具有关系(例如,由主干关系创建),这些关系可能可为空,导致外键字段有时为 null。 如果我有几个击退 View 模型,并且我已经指定了工厂,以便在遵循关系时,当遇到 null 属性时
我目前正在使用 Knockback.js 创建一个页面,该页面在表格中显示员工的任务。我有一个任务的 View 模型,其中包含一个名为 isSelected 的 bool 可观察量。员工的 View
采用以下代码: var model = new Backbone.Model({ items: new Backbone.Collection([ new Backbone.M
我正在寻找一个非常简单的示例,该示例显示将 Knockback 代码连接到通过 RESTful 服务连接的主干模型。我正在使用 ServiceStack|c# 后端。下面的所有链接都太复杂了,使用 l
我正在尝试制作一个简单的 View 模型来显示带有 Knockback 的对象列表。 View 模型相当简单,如下所示: var objectives_collection = new Objecti
我是一名优秀的程序员,十分优秀!