Я пытаюсь обновить глобальную переменную javascript со значением из шаблона jsrender. Как я могу это выполнить...
я создал скрипт http://jsfiddle.net/4RH7n/8/
мне нужно, чтобы последнее название фильма было в этой переменной javascript..
Я пытаюсь обновить глобальную переменную javascript со значением из шаблона jsrender. Как я могу это выполнить...
я создал скрипт http://jsfiddle.net/4RH7n/8/
мне нужно, чтобы последнее название фильма было в этой переменной javascript..
Пользовательские теги и помощники могут быть легко зарегистрированы для доступа или изменения глобальных переменных. Пример здесь (код здесь), который показывает оба пути, и иллюстрирует настройку и получение глобальных переменных из шаблона. Вспомогательные/пользовательские теги лучше, чем использование {{* ...}}
(поскольку таким образом вы лучше разделяете код и разметку), но если вы используете синтаксис {{*
, вам нужно установить allowCode=true
. (см. этот пример).
Вышеупомянутые подходы — это способы использования вашего собственного расширения для доступа к ЛЮБЫМ файлам global. Однако в большинстве сценариев у вас, вероятно, есть только определенные глобальные переменные, к которым вы хотите получить доступ. В этом случае действительно легко передать глобальные параметры в качестве параметров вызова .render()
(или вызова .link()
, если вы используете JsViews) следующим образом:
...render(myData, { foo: myFooGlobal, bar: myBarGlobal });
а затем получить к ним доступ в любом выражении в шаблоне, например, так:
... {{:~foo}} ... {{for ~bar}} ... {{/for}} ...
Если вы хотите иметь доступ к этим глобальным переменным из всех ваших шаблонов (или для всех вызовов определенного шаблона), вы можете вместо этого зарегистрировать их как глобальные (или специфичные для шаблона) вспомогательные параметры/параметры шаблона, и тогда вам не нужно передать их с вызовом рендеринга/ссылки.
Например, чтобы зарегистрировать их глобально, для всех шаблонов:
$.views.helpers({
foo: myFooGlobal,
bar: myBarGlobal
});
Затем вы получаете к ним доступ точно так же, как описано выше, используя ~foo
(или foo()
для функции).
Примеры всех этих подходов вы найдете на GitHub.
Помимо документации и примеров, упомянутых выше, на http://www.jsviews.com и, в частности, здесь и здесь.
Не совсем уверен, что вы спрашиваете. Данные не будут поступать из шаблона, у вас уже есть данные в этом объекте. Просто используйте его напрямую:
window.abcfx = function() {
alert(movies[movies.length-1].name);
}