2016-11-20 6 views
0

Привет, я пишу службу $ resource для подключения api. здесь код в service.js

.factory('selfApi2', function ($resource, localStorageService) { 
var AB = { 
    data: function (apiURL, header, data, params) { 
    return $resource("http://localhost:4000/api" + apiURL, null, { 
     update: { 
     method: 'POST', 
     headers: header, 
     data: data, 
     params: params 
     } 
    }); 
    } 
}; 
return AB; 
}) 

в моем controller.js

var header = { 
'Content-Type': 'application/x-www-form-urlencoded' 
}; 
var myData = { 
'phone': '12345678' 
}; 
selfApi2.data('/tableName',header,{where:{"name":"kevin"}).update(myData, function(result){ 
console.log("update Kevin's phone succeed",result); 
}) 

это работает. Но почему переменная myData должна помещаться внутри части update(), а не части data()?

ответ

0

В вашем случае data() это функция, которая будет просто создать ReST ресурс, который подвергнет rest APIs get save query remove delete по умолчанию.

Итак, в этом data() позвоните, вы просто создаете остальные ресурсы. Передача myData с этой функцией не имеет смысла. Вызов data() возвращает экземпляр Resource, который будет иметь функцию api update, которая принимает параметры.

И, передавая ваши данные в течение времени строительства, не имеет смысла.

Here - полная ссылка

0

Я думаю, это потому, что «данные» - это функция, которая возвращает объект $ resource. Попробуйте сценарий ниже:

// service 
    .factory('api', function ($resource) { 
     var api = {}; 

     api.issues = $resource("http://localhost:4000/api/issues"); 

     api.users = $resource("http://localhost:4000/api/users", {}, { 
     update: { 
      method: 'PUT', 
      headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
      } 
     }, 
     }); 

     return api; 
    }) 

    // controller 
    api.users 
     .update({where:{name:'kevin'}}) 
     .$promise.then(function(success) { 
     // DO SOMETHING 
     }); 

    ... 

    api.issues.query().$promise.then(
     function(success) { 
     // DO SOMETHING 
     }); 
Смежные вопросы