2012-11-20 221 views
1

我有這個模型稱爲項目,其成員是表中的行,更具體地說,通過jQuery的數據表飾表插件

下面是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

我假設你從哪裏調用工廠的控制器中有某種​​包裝方法。

可以稱之爲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請求,驗證數據等

讓我知道如果這就是你正在尋找的東西,我會爲你整理一些僞代碼。