用户登录

用户打开某个具体的内容页面以后,点击页面下方的 编辑 按钮,可以打开编辑页面去编辑当前这个内容。我们要做的就是去创建一个这样的编辑页面,点击编辑。。。动态的去获取到要编辑的内容,把对应的内容放在相应的表单元素里 ... 用户修改以后,点击 更新 .. 可以把保存所做的修改 ...

想要编辑内容需要开启服务的 node 里面的 update 资源 ...

确定开始了这个资源以后 ...

index.html

打开应用项目的 index.html ,这里我添加了一个 编辑内容 的页面 ... 页面上定义了 node-edit 这个 id ... 页面的主体内容是一个表单 ... 表单里有一个修改内容标题用的文本框 ,上面定义了 node-edit-title 这个 id ...

还有一个用来修改内容主体内容的的文本区域 ... 上面定义了 node-edit-body 这个id ... 最后,还有一个 更新 按钮 ... 上面定义了 node-edit-submit 这个 id 。

editNode

先去定义一个函数,它的作用就是,得到想要编辑的内容的标题还有正文,把标题和正文的内容放在编辑内容页面的标题和正文表单里面 .. 可以叫它 editNode ... 这个函数可以接收一个 nid ,也就是节点 id 的参数 ... 在函数里面用一个 ajax 方法,请求的地址是 url: 'http://127.0.0.1/drupal/myservice/node/' + nid,

类型是 GET ,数据的类型是 json ,错误的时候去执行 onError ... 请求成功的以后 ... 先获取到节点标题的内容,把它放在节点标题表单里 ... 这个节点标题表单元素上,定义了 node-edit-title 这个 id ...

再得到节点正文这个表单元素 ... 把节点的正文内容放在这个文本区域里面 ...

下面在控制台上可以输出点东西 .. 然后我们要做的就是,当用户修改完成以后,点击了 更新 按钮以后,需要收集标题和正文表单里的内容,把它们发送给服务,为我们去更新内容。

先获得 更新 按钮 ... 调用 click 方法,点击它的时候去做一些事情 ... 把标题表单里的内容交给一个变量,叫做,nodeTitle ...

再把正文文件区域里的内容交给一个变量,叫做 nodeBody ...

nodeEditSubmit

下面,我们还需要去定义一个函数,这个函数可以去完成更新的动作 ... 比如我们可以叫它 nodeEditSubmit .. 在点击 更新 按钮的时候,去调用这个函数... 调用的时候,需要几个参数 ... nodeTitle ... nodeBody .. 还有 nid ..

在上面,去定义一下这个 nodeEditSubmit 函数 ...

函数需要接收三个参数 ... nodeTitle 更新之后的节点的标题 ... nodeBody.. 更新以后的节点的正文 ... 还有节点的 id ...

这个函数同样使用 ajax 方法发送一个请求。这个请求需要用到 CSRFToken ...

请求的地址是 'http://127.0.0.1/drupal/myservice/node/' + nid, 类型是 PUT .. dataType 是 json ...

在这个请求里,要添加一个 data 属性 ... 也就是需要向服务器发送的数据 ...

data: 'node[title]=' + nodeTitle + '&node[body][und][0][value]=' + nodeBody,

它的意思就是发送的 node 节点的标题是 nodeTitle ... 还有 node 的 body 的值,也就是正文是 nodeBody ... nodeTitle 还有 nodeBody 是调用这个函数的时候传递过来的 ...

成功以后 ... 在控制台上输出点东西 ... 再把页面重定向到内容页面 ... $('body').pagecontainer('change', '#node');

执行 editNode

最后,我们要做的就是给之前定义的 editNode 函数找一个执行它的地方 .. 在文件的底部 ... 添加一种情况 ...

case 'node-edit':
if (currentNode) {
editNode(currentNode);
}
break;

如果当前页面是 node-edit ... 也就是节点编辑页面的话 ... 就去执行 editNode 这个函数 ... 执行的时候,把存储在本地的当前的节点 id 做为它的参数 ...

预览

保存一下 ... 回到浏览器 ... 刷新 ... 打开一个内容 ... 然后点击 编辑 按钮 ... 会打开编辑内容的页面 ... 获取当前节点的 id ,再去调用 editNode 函数 .. 把节点内容放在编辑的表单里 ...

随便修改一下内容 ... 然后点击 更新 ... 这样会调用 nodeEditSubmit 函数 ... 会把修改以后的内容发送给服务器 ...

成功以后,会返回到编辑的这个内容。

编辑内容的页面《 Drupal Services 整合外部应用 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点