Переплет 2 модели - PullRequest
       39

Переплет 2 модели

1 голос
/ 05 апреля 2019

У меня есть две модели и один вид, но я не могу найти правильный способ, как combine/join моделей.

Обе модели Sproutcore (данные сотрудника) имеют атрибут function description. Но используемая в настоящее время модель function description устарела, поэтому мне нужно использовать function description другой модели.

functieLabel: function(){
    var bsnInt = parseInt(this.get('bsn'));
    if (SC.none(bsnInt)) return 'loading...';
    //var query = SC.Query.local(App.Medewerker, { conditions: 'bsn = bsnParam'}, {parameters: bsnParam = bsnInt});
    var query = SC.Query.local(App.Medewerker, { conditions: 'bsn = %{bsnParam}'}, {parameters: { bsnParam: bsnInt } });       
    var results = App.store.find(query);
    SC.info('results: length=%@', results.length());
    SC.info('functie: functie=%@',results.objectAt(0).get("functie"))
    var functie = results.objectAt(0).get("functie");
    return functie
}.property('functieLabel'),

Я расширил MedewerkerDetailInfo вычисленным свойством functieLabel. Но запрос не правильный, то есть все записи возвращаются. Предложения? Заранее спасибо.

    App.MedewerkerDetailInfo = SC.Record.extend({
    ..
    functieLabel: function() {
    ..
    }.property('functieLabel'),
    ..

    App.Medewerker = SC.Record.extend({
    ..
    functie: SC.Record.attr

Этот работает, как и ожидалось:

functieLabel: function(){
    var bsnInt = parseInt(this.get('bsn'));
    if (SC.none(bsnInt)) return 'loading...';
    var query = SC.Query.local(App.Medewerker, {conditions: "bsn = %@", parameters: [bsnInt]});
    var results = Sea.store.find(query);
    var lengte = results.length()
    if (lengte = 0){
        return "onbepaald".toString()
    }
    else {
        return results.getEach("functie").toString()
        }

}.property('bsn'),
...