我有一个名为Project的模型,其成员是表中的行,更具体地说,是由jQuery DataTables插件装饰的表
这是我在coffeescript中的项目模型
#= require vendor/angular.js
Project = angular.module('Project', ['ngResource'])
.value( 'csrf', $('meta[name="csrf-token"]').attr('content') )
.factory('Project', ['$resource','csrf', ($resource, csrf) ->
$resource '/projects/:project_id/:action', {authenticity_token: csrf, project_id:'@id'},
query:
method: 'GET'
isArray: yes
new:
method: 'GET'
params:
project_id: 'new'
edit:
method: 'GET'
update:
method: 'PUT'
])
与角度一起使用的DataTable插件的一个缺点是每当我这样一个项目。$ update()时,该项目从视图中消失
所以我必须通过重新初始化来重新加载DataTable,我现在可以忍受它,但我当时想知道,如果有一种方法可以设置$ resource的通用回调,我可以把这个DataTables重新初始化调用?
谢谢!
答案 0 :(得分:0)
我假设在控制器中你从哪里调用工厂,你就有了某种包装方法。
我们称之为scope.crudData
SomeCtrl = (scope, http, projectService)
scope.crudData(p_id, act, method) ->
meth = YOUR LOGIC FOR PARSING AN ACTUAL FUNCTION FROM THE METHOD NAME GOES HERE
projectService.meth
project_id: p_id
act: action
, (response) ->
THIS IS WHERE YOUR CALLBACK LIVES. KNOCK YOURSELF OUT. RELOAD THE DATA DO ANYTHING YOU WANT
如果这还不够好,我可以假设在配置中为所有ajax请求注册一个监听器,验证数据等。
如果您正在寻找的话,请告诉我,我会为您准备一些伪代码。