Può un knockout custom element avere l'attributo params associato a un oggetto come un Component binding può?Un elemento personalizzato può essere passato un oggetto per i parametri come può fare il binding del componente?
Ad esempio ho il seguente componente definita:
ko.components.register('user-widget', {
template: '<p><span data-bind = "text:fullName" ></span></p>',
viewModel: function (params) {
this.fullName = params.firstName + ' ' + params.lastName;
}
});
E seguente VM:
function VM() {
this.user = {
firstName: 'Joe',
lastName: 'Baker'
};
}
Quando si utilizza un componente legante posso passare la proprietà utente del VM direttamente ai params attributo in questo modo:
<div data-bind='component:{name:"user-widget", params:user}'></div>
Tuttavia quando si utilizza un elemento personalizzato devo unboxing t ha proprietà utente in questo modo:
<user-widget params="firstName:user.firstName, lastName:user.lastName"></user-widget>
Ho provato ad utilizzare un elemento personalizzato con il legame di un componente in questo modo:
<user-widget data-bind='component:{params:user}'></user-widget>
che si traduce nella seguente errore:
Cannot use the "component" binding on a custom element matching a component
che non è esattamente quello che sto cercando. So di poter passare un parametro individuale come un oggetto come quello che hai mostrato. Tuttavia, voglio associare l'attributo params a un singolo oggetto come può essere fatto con il binding del componente. –
Ho paura che quello che stai cercando non sia al momento possibile.Guardando all'origine, i componenti personalizzati cercheranno in particolare l'attributo 'params'. Tuttavia, utilizza il provider di binding per analizzare i binding, quindi se lo si desidera, è possibile creare un nuovo schema di associazione in modo da poter utilizzare invece l'oggetto passato come binding analizzati. –
Spiacente, questo non funziona, sembra che il fornitore di binding non possa essere collegato a. in questo caso –