Запрос отношений в loopback не работает через Angular SDK

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

У рабочего много навыков

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

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

Ниже приведена реализация Angular, которая у меня есть

 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'
]
}
});

Однако этот пример похож на отношение ownTo, и когда я попытался изменить, он не смог этого сделать.

Изменить: добавление 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": []
}

person TJ_    schedule 27.02.2015    source источник
comment
Вы можете показать нам свой файл Worker.json?   -  person Jordan Kasper    schedule 27.02.2015
comment
@jakerella я добавил и worker.json, и skills.json выше   -  person TJ_    schedule 27.02.2015


Ответы (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);

}])
person mrdotb    schedule 25.03.2016
comment
Мне не нужно было добавлять автора, чтобы это работало, но в остальном все работало отлично. Спасибо. - person Luke W; 15.08.2016