2012-11-12 3 views

ответ

1

Ничто не мешает вам ссылаться на функции вне вашей модели. Нокаут сначала смотрит в viewmodel, но будет искать глобальный контекст, если он ничего не найдет.

HTML:

<ul data-bind="template: { foreach: labels, afterAdd: app.animations.afterAdd}"> 
    <ol data-bind="text: $data"></ol> 
</ul> 

JS:

app = {};  
app.animations = {};  
app.animations.afterAdd = function(elem){ 
    $(elem).hide().slideDown('slow'); 
}; 

Here is a fiddle демонстрируя, что это работает.

+0

Это отлично работает, но есть ли способ объединить три первые строки javascript в одном выражении вместо 3? – Peter

+0

@Petoj Я делал это только так, потому что предполагаю, что у вас будет другой код приложения. Если вам не нужны первые две строки, и вам просто нужны некоторые глобальные функции, вы можете это сделать. Я бы рекомендовал этот метод, потому что он сохранит весь ваш код приложения из глобального пространства имен. – Tyrsius

Смежные вопросы