Kendo MVVM - ViewModel within Other

0

Is it possible to bind a ViewModel inside Another? If so, how?

I need to mount a context something like this:

<div data-bind="visible: ViewModel_1.isVisible" />
    //....

    <div data-bind="source: ViewModel_Child1/>
         // Contexto referente ao filho 1 da viewModel
    </div>

    <div data-bind="source: ViewModel_Child2/>
         // Contexto referente ao filho 2 da viewModel
    </div>

    <div data-bind="source: ViewModel_ChildN/>
         // Contexto referente ao filho N da viewModel
    </div>
</div> 

It would be a structure more or less like this:

public Pessoa {
     public List<Contato> Contatos { get; set; }
     public List<Referencia> Referencias { get; set; }
     public List<Mensagem> Mensagens { get; set; }
}

And each List, will have a Grid ... pq will be a screen with several tabs

[Pessoa] | [Contato] | [Referencia] | [Mensagem] --- // onde | no exemplo seria um separador ou aba

And it will be a registry controlled by the same screen, in different controllers ... so I do not need to make a complex viewModel to save every% of% of each tab ... I wanted to bind one to each, but having dataSource as Father

    
asked by anonymous 03.04.2014 / 22:22

1 answer

0

I found the solution.

When trying to Nested Binds , it should be done as follows.

    //....

<div  id="nested" data-bind="source: ViewModel_Child1/>
     // Contexto referente ao filho 1 da viewModel
</div>

no js:

var viewModelPai = kendo.Observable.observable({..});
var viewModelFilho = kendo.Observable.observable({..});

//e os binds devem ser atribuído assim

kendo.bind($("#pai").children().not("#filho"),viewModelPai);

//na diretiva acima, manda construir o bind MVVM na 'div#pai' ignorando a 'div#filho'
//dentro dela, permitindo assim um novo bind dentro dessa como é feito abaixo

kendo.bind($("#filho"),viewModelFilho);
    
22.05.2014 / 15:51