2015-02-27 1 views
0

Я пытаюсь сделать запрос к модели отношений я две моделей 1. Рабочих 2. Навыкиотношение в Выполнении запросов шлейфа не работает через Угловой SDK

работник hasMany Навыки

Я могу запросить апите через исследователь http://localhost:3000/explorer/#!/Workers/prototype_get_skills и/апи/рабочий /: идентификатор/Skills URL и возвращает список навыков для давания Worker Id

проблема происходит, когда я пытаюсь вызвать Worke r.skills() метод, порожденный Angular SDK, где я получаю 404 не найдена ошибка

Ниже Угловое реализация, что у меня есть

angular.module('worker-dashboard').factory('WorkerDashboardSkillService',['Worker', 
    function(Worker){ 
     function getWorkerSkills(worker){ 
      return Worker.skills({ 
        filter: 
        { 
         where: 
         { 
          "workerId" : worker 
         } 
        } 
       },function(data){ 
        console.log(data); 
       }, 
       function(err){ 
        console.log(err); 
       }) 
     } 
     function addWorkerSkills(worker,skill){ 
      return Worker.skills.create(
       { 
        "skillName": skill.name, 
        //TODO chabge below 
        "skillCategory": skill.name, 
        "workerId": worker 
       },function(data){ 
        console.log(data); 
       }, 
       function(err){ 
        console.log(err); 
       }) 
     } 

     return{ 
      getWorkerSkills : getWorkerSkills, 
      addWorkerSkills : addWorkerSkills 
     } 
    }]); 

Я также попытался пример петлевой-получение-начал-промежуточное

Который есть пример

$scope.reviews = Review.find({ 
filter: { 
where: { 
publisherId: $rootScope.currentUser.id 
}, 
include: [ 
'coffeeShop', 
'reviewer' 
] 
} 
}); 

Однако этот пример является выглядит для belongsTo отношения, и когда я попытался модифицировать это не может сделать это

Edit: Добавление Worker.json

{ 
    "name": "Worker", 
    "base": "User", 
    "idInjection": true, 
    "properties": { 
    "workerName": { 
     "type": "string" 
    }, 
    "workerFirstName": { 
     "type": "string" 
    }, 
    "workerLastName": { 
     "type": "string" 
    }, 
    "isWorkerBlackListed": { 
     "type": "boolean" 
    }, 
    "workerBlacklistedByClient": { 
     "type": [ 
     "string" 
     ] 
    } 
    }, 
    "validations": [], 
    "relations": { 
    "skills": { 
     "type": "hasMany", 
     "model": "Skills", 
     "foreignKey": "workerId" 
    } 
    }, 
    "acls": [ 
    { 
     "accessType": "EXECUTE", 
     "principalType": "ROLE", 
     "principalId": "$everyone", 
     "permission": "ALLOW" 
    } 
    ], 
    "methods": [] 
} 

Skills.json

{ 
    "name": "Skills", 
    "base": "PersistedModel", 
    "idInjection": true, 
    "properties": { 
    "skillName": { 
     "type": "string" 
    }, 
    "skillCategory": { 
     "type": "string" 
    } 
    }, 
    "validations": [], 
    "relations": { 
    "worker": { 
     "type": "belongsTo", 
     "model": "Worker", 
     "foreignKey": "" 
    } 
    }, 
    "acls": [ 
    { 
     "accessType": "EXECUTE", 
     "principalType": "ROLE", 
     "principalId": "$everyone", 
     "permission": "ALLOW" 
    } 
    ], 
    "methods": [] 
} 
+0

Вы можете показать нам свой файл Worker.json? – jakerella

+0

@ jakerella Я добавил как worker.json, так и skills.json выше –

ответ

1

Лучше поздно, чем никогда. Сегодня у меня были такие же проблемы. Вам просто нужно добавить угловую зависимость.

angular 
.module('app') 
    //inject all the model you need 
    .controller('ListBooksController', ['$scope', '$state', 'Book', 'Collection', 'Author', function($scope, 
$state, Book, Collection, Author) { 

    $scope.books = Book.find({ 
    filter: { 
    include: [ 
    'author' 
    //put the model you want to retrieve 
    ] 
    } 
    }); 
    console.log($scope.books); 

}]) 
+0

Мне не нужно было добавлять Author для этого, чтобы работать, но в остальном он отлично работал. Благодарю. –