2013-12-13 223 views
0

如何绑定Google翻译Durundal Shell.js,shell.html?Durundal谷歌翻译

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'); 
     } 

回答

0

迪朗达尔不会呈现SC视图内的标签。为了使它们, 你应该使用knockout custom bindings

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> 
1

见Durandal的组成功能:http://durandaljs.com/documentation/Using-Composition/

例子:

<div> 
    <div data-bind="compose:'views/google_translate.html'"></div> 
</div> 
+0

我需要绑定与谷歌的Java脚本 –

+0

的DIV ID,你应该把你的脚本' google_translate.html'并激发'compositionComplete'中的函数 –