我正在使用Knockout.js来构建客户端视图模型.在我的视图模型中,我想公开一些可以绑定到页面中元素的函数(典型的MVVM模型).我只希望响应来自按钮的单击事件来调用这些函数,但是在构建视图模型时调用它们...
我已经定义了这样的模型:
<script type="text/javascript">
var ViewModel = function(initialData) {
var self = this;
self.id = initialData;
self.isSubscribed = ko.observable(false);
self.name = ko.observable();
self.SubscribeToCategory = function () {
$.ajax({
url: '@Url.Action("Subscribe", "Category")',
type: 'POST',
data: {
categoryId: self.id
},
success: function () {
self.isSubscribed(true);
},
failure: function () {
self.isSubscribed(false);
}
});
alert('Subscribing...');
};
self.UnsubscribeFromCategory = function () {
$.ajax({
url: '@Url.Action("Unsubscribe", "Category")',
type: 'POST',
data: {
categoryId: self.id
},
success: function () {
self.isSubscribed(false);
},
failure: function () {
self.isSubscribed(true); …Run Code Online (Sandbox Code Playgroud) 我是REST架构设计的新手,但我认为我已经涵盖了它的基础知识.
从RESTful调用返回对象时遇到问题.如果我发出请求,例如http:// localhost / {type A}/{id},我将从具有指定id的数据库返回A的实例.
我的问题是当A包含B对象的集合时会发生什么?目前,我生成的XML返回A,其中包含B对象的集合.可以想象,如果B类型具有C对象的集合,那么返回的XML将最终成为一个非常复杂的对象图.
我不能100%肯定,但这感觉违反了RESTful原则,XML for A应该返回A的字段等以及它所拥有的B集合的URI集合.
对不起,如果这有点令人困惑,我可以尝试详细说明.这似乎是一个相对基本的问题,但我无法确定哪种方法更"REST".
干杯,
Aidos
我正在尝试研究如何为我正在编写的webapp开发一个合理可扩展的批处理框架.
我使用Spring MVC作为webapp,使用自定义DAO层(为了访问数据库,需要从UnitOfWorkFactory构造UnitOfWork实例,该UnitOfWorkFactory设置为@Autowired并由Spring在运行时注入).
我使用Spring Scheduler注释(@Scheduled)来安排任务,但是我希望这些任务在我的集群中的不同机器上运行.每个批处理作业应由其中一个集群计算机选取,然后执行.
Hazelcast似乎非常适合这一点,因为分布式执行设计看起来非常简单和优雅.
我遇到的问题似乎没有被文档覆盖.我已经阅读了有关Spring Integration的文档,但是这似乎集中在如何使用Spring配置Hazelcast(我已经完成).
当调度程序指示要启动任务时,我想创建任务的新实例(Callable实例)并将其提交给DistributedExecutor.当集群机器收到要运行的任务时,我需要集群机器上的Spring容器在任务尝试执行它之前将UnitOfWorkFactory实例注入批处理任务.每个集群都以Spring开头,并且已经使用正确的细节实例化了UnitOfWorkFactory,问题在于将UnitOfWorkFactory实例注入到我的任务中.
有没有人知道如何配置我的应用程序,以便Hazelcast可以在Callable启动时自动注入UnitOfWorkFactory?我已经尝试将Callable标记为Serializable和ApplicationContextAware,但在尝试运行任务时仍然会得到NullPointerException.
我可以直接访问ApplicationContext,但是我不愿意这样做,因为它会限制我的任务的可测试性,并为我的批处理作业引入了对Spring的硬依赖.
我正在开展一个已经运行了很长一段时间的项目,我们正在进行产品的最终发布.
目前的测试工作已经发现系统中还有大约30个缺陷,但是我们没有时间来解决所有这些缺陷(我确信这是一种非常常见的情况).
我和不同的人讨论了代码冻结是否应该继续进行.目前,我的经理希望保持代码冻结,但是要在冻结和释放之间的窗口中修复剩余的关键缺陷(大约5周).我担心这不是一个实际的代码冻结,而是代码"搪塞"充其量.这些缺陷将由一组高级工程师进行分类,以确保只有剩余问题中的关键修复实际上得到了解决,但从初步看来,关键问题似乎占总缺陷缺陷的三分之二左右.
我知道,冻结代码会给开发人员带来一些心理上的好处,例如为所有工作提供固定的结束日期.然而,这似乎完全否定了我的经理公开讨论将在"冻结之后"进行的修复.
我想知道是否有其他人有类似的经历,或者可以就如何处理这种情况的最佳方法提供一些建议.我开始认为没有人在他们说他们要去的那天实际上冻结他们的代码库.
我们计划在代码冻结日从subversion中进行分支,以确保产品的最终发布版本与开发中继隔离,因此我不太担心影响发布版本的更改问题的产品.
谢谢,
Aidos
编辑:我想解释一下我的经理人思维的最好办法是,它不是一个真正的代码冻结,更多的是'功能冻结’的,但是所有的功能已经有一段时间的产品,现在我觉得这是一个粗略过度简化.
EDIT2:我想感谢大家的伟大的答案,可惜我只能标记一个乐于助人,即使所有的7个答案至今一直非常有帮助的.
我熟悉使用Device.BeginInvokeOnMainThread更新UI线程上的UI元素的规则,但是我有一个操作需要在实际上是Task的UI线程上运行.
例如,XLabs.Forms.Mvvm上的Push/PopAsync方法似乎在iOS上表现不正确,除非在UI线程上调用它们.Acr.UserDialogs库中还有另一个用于显示toasts等的示例.
我知道创建一个Action异步基本上是创建一个异步void lambda并且在异常的情况下冒着创建死锁的风险,显然我不希望这种情况发生.
有没有人在UI线程上执行异步操作的解决方法,不涉及将Action标记为异步?
async-await ×1
c# ×1
code-freeze ×1
composite ×1
function ×1
hazelcast ×1
javascript ×1
knockout.js ×1
object ×1
rest ×1
spring ×1
viewmodel ×1
xamarin ×1