- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在模型上添加更多的 rest 绑定(bind),然后只添加四个 CRUD 函数?
var Customer = can.Model({
findAll: 'GET /customer',
findOne: 'GET /customer/{id}',
create: 'POST /customer',
update: 'PUT /customer/{id}',
destroy: 'DELETE /customer/{id}'
//maybeAnOtherMethod: 'PUT /customer/{id}/activate'
}, {
});
最佳答案
REST 背后的理念是您拥有资源以及对这些资源的操作。资源本身由 URL 描述,操作由 http 动词描述。
因此,GET
是读取的 Action ,/customer/{id}
描述的是你要加载的资源。这可以。所以,你所有的五个方法都很好,因为 can.Model
is designed to handle CRUD functionality with a basic REST interface .
最后一个(已评论)的问题是您在 url 中混合了资源和操作。 “激活”绝对是一个动词,没有资源。因此它不属于那里,但它应该是一个 http 动词。这就是为什么您找不到对这种 REST 接口(interface)编程方式的支持 - 仅仅是因为它不是 REST。
虽然您可以重新设计 API 以将 activate
视为一种资源,但更有可能的是,客户的激活或未激活状态是 customer
资源的一部分.您将使用 update
方法,因为您正在更改有关客户的某些内容。在 CanJS 中,它看起来像这样:
Customer.findOne({id: 5), function( customer ){
customer.attr('active', true);
customer.save();
}
长话短说:在 REST 中,url 都是关于名词的,http 方法都是关于动词的。
这有助于让事情变得更清楚一点吗?
关于javascript - canjs 模型上的更多 restfunctions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387020/
远程第三方 JSONP 服务器为我的 CanJS 脚本提供如下结果列表: [ { "class": "ABaseClass", "value": "1"}, { "class": "A
如何实现Canjs的验证?我遇到了一些麻烦。在他们的指南页面上,他们这样做: Contact = can.Observe({ init : function(){ // validates t
我正在编写一个 canJS 应用程序,到目前为止成功地处理了 html 表格的点击事件。使用以下代码。 'table td click':function(el,event){ co
如何在 CanJS 中绑定(bind)右键单击事件? 我已经尝试了以下操作,但我猜点击只会捕获左键单击(因为 ev.which 不会在右键单击时记录 3)。 '.btn click': functio
所以这个错误让我很生气,因为我不知道发生了什么,我将我的 canjs 版本更新到最新版本,目前是 2.0.4 和 jquery,路由器停止工作。没有路由任何东西,我尝试使用 window.locati
我想在我的模型中添加不在 REST 服务结果中的动态属性。这些动态属性会缩短名称、格式化日期等。例如,我的 CanJS 模型如下: var MyModel = can.Model({ find
我正在使用 CanJS 编写一个 SPA,其中有一个列表,用户可以添加该列表。我想通过将新添加的项目写入文件来永久存储它。有人可以帮助我吗? '.btn_save click': function (
在 CanJS Controller 中,我在另一个单击处理程序中使用单击事件。如何从子处理程序将一些数据传递给父处理程序 someController=can.Control({ init:
这是我正在尝试使用的代码。在我的 JS 文件中,我有:$计数 = 0 在我的 HTML 中我正在尝试: {{#if categories}} {{#each categories}} {{c
我有一个类似于以下内容的 Controller : var TheController = can.Control.extend({ defaults: { field: undefi
我正在使用 Canjs 构建我的 Web 应用程序。现在我在处理它时遇到了一个问题。 Controller 在单个 HTML 元素上发生更改,并且附加到该特定元素的 Controller 在附加新 C
我的问题是在使用 canJS Observable 时我不能在对象键中使用点,因为可以认为这里可以使用一些嵌套。 假设我创建新的可观察对象: var obs = new can.Observe( {
我正在寻求 https://github.com/thinkadoo/Projects 的帮助应用。我在这个的帮助下构建了一个类似的应用程序。我的应用程序使用的是 d3 图表,而不是它使用的图表。我的
我通过模型接收嵌套的 JSON 数据。 在 CanJs 中传递我的 View 文件时,如何循环遍历模型中的嵌套数据? 最佳答案 您可以使用您的 json 数据创建一个 can.Observe.List
正在查看用于控制的 Canjs 示例。 TaskStriker = can.Control({ "{task} completed": function(){ this.upd
我正在将 CanJS 用于 Web 应用程序。我想知道如何实现搜索。我已经实现了 findAll,但我想根据名称而不是 id 来实现 findOne。 var Library = can.Model(
我得到一个模型延迟对象,其结构如下: 如何找出该对象中存在多少个对象(在本例中为三个)。如果我使用 Object.keys(myObject).length,它包括对象观察者和其他数据,如 _comp
我想我这里可能有一个奇怪的用例。我有一个带有 code、title、description 属性的 Code 模型。用户正在记录工作(医疗保健),他们输入 code,比如 7,而 7 总是意味着发生了
有没有办法在模型上添加更多的 rest 绑定(bind),然后只添加四个 CRUD 函数? var Customer = can.Model({ findAll: 'GET /customer
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!