Durundal Google Translate

Как мога да обвържа Google translate в Durundal Shell.js, shell.html?

html

<div id="google_translate_element"></div>

сценарий

<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

  function googleTranslateElementInit() {
            new google.translate.TranslateElement({ pageLanguage: 'en', autoDisplay: false }, 'google_translate_element');
        }

person ineffable p    schedule 13.12.2013    source източник


Отговори (2)


Durandal не изобразява скриптови тагове в изгледи. За да ги изобразите, трябва да използвате персонализирани обвързвания за премахване:

ko.bindingHandlers.googleTranslate = {
  update: function( element, valueAccessor, allBindingsAccessor, viewModel, bindingContext){
    var googleElement = valueAccessor();
    $(element).html('<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> <script>function googleTranslateElementInit() { new google.translate.TranslateElement({ pageLanguage: "en", autoDisplay: false }, " + 'googleElement' + ");}</script>');
  }
};

Използвайте го във вашия shell.html:

<div id="google_translate_element"></div>
<div data-bind="googleTranslate:'google_translate_element'"></div>
person Erikas Pliauksta    schedule 15.12.2013

Вижте функционалността за композиция на Durandal: http://durandaljs.com/documentation/Using-Composition/

Пример:

<div>
    <div data-bind="compose:'views/google_translate.html'"></div>
</div>
person Brett Veenstra    schedule 13.12.2013
comment
трябва да поставите своя скрипт в google_translate.html и да задействате функцията вътре в compositionComplete - person Brett Veenstra; 13.12.2013