Как вызвать функцию из java-скриптов на стороне клиента jade

У меня есть два выпадающих списка в моей форме. После того, как пользователь выбрал значение из первого списка, я хочу отфильтровать второй список в соответствии с выбором и отображением. Для этого я использую onchange="showSubCat(); первого варианта выбора, чтобы получить выбранное значение. Функция showSubCat() определена в js-файле на стороне клиента. Как мне получить значение, возвращаемое функцией showSubCat() в шаблоне jade, чтобы я может фильтровать массив, который заполняет второй список.

var subcode = showSubCat();

дает ошибку.

Какие-либо предложения? Спасибо.


person user1145952    schedule 02.03.2012    source источник
comment
Вы пробовали mixin showSubCat()?   -  person jwerre    schedule 21.05.2012


Ответы (1)


Я новичок в Jade, но, насколько я могу судить, у вас есть два варианта:

1) создайте функцию в самом нефрите:

-function sayHi(name){
   - return "hello "+name
-}
p= sayHi('bill')

Что, я думаю, немного запутывает ваш код.

2) Лучшим вариантом было бы передать функцию из модели

app.get('/', function(req, res){  
    res.render('home', { 
        title: 'Home'
        , fs: { sayHi:function(name){
            return "hello "+name
        }}
    });
});

Затем в вашем нефритовом файле вы просто:

p= fs.sayHi('bill')
person jwerre    schedule 21.05.2012
comment
Насколько я могу судить, вариант (1) недействителен в Jade. В последней версии не компилируется. Все директивы Javascript должны иметь свою область действия, полностью охватываемую одной строкой. - person Chris Redford; 04.09.2013