2014-12-30 3 views
0

я получаю TypeError в моем яваскрипта коде при определении своих функций:TypeError в определении функции

TypeError: (intermediate value)(...) is not a function 

Функция определяется как:

;(function (factory) { 
    if (typeof define === "function" && define.amd) { 
     define(["knockout", "jquery", "jquery.ui.sortable"], factory); 
    } else { 
     factory(window.ko, jQuery); 
    } 
})(function (ko, $) { 

    // Some code including a bindingHandlers... 

})(); 

Этот код включен в мой .ascx (вид) после того, как нокаут включают в себя как:

Ва t означает ошибку и как я могу ее отслеживать и исправить?

я ввести (и связывать) мои ViewModel как это:

<script type="text/javascript"> 
    jQuery(document).ready(function ($) { 
    var client = new myServiceClient(<%:ModuleContext.ModuleId%>); 
    client.getModel() 
     .done(function (model) { 
      var viewModel = new ViewModel(model, client); 
      //$("#template-load").load("DesktopModules/BBWysSceneStacker/scene-template.html") 
      // .success(
        ko.applyBindings(viewModel, document.getElementById("<%= BBWysSceneStacker.ClientID %>")) 
      // ) 
      ; 
     }) 
     .fail(function (model) { 
      alert("Error in getModel!"); 
     }); 
    }); 
</script> 
+0

Связанный: http://stackoverflow.com/questions/23370269/jquery-autosize-plugin-error-intermediate-value-is-not-a-function – nemesv

+0

не уверен, но в в конце вам не хватает ')' закрытия, которое должно быть чем-то вроде: '})());' – Jai

+0

Спасибо, Джай, но который «(« отсутствует »)« предполагается разместить? –

ответ

0

Нет необходимости запускать функцию второй раз.

;(function (factory) { 
 
    if (typeof define === "function" && define.amd) { 
 
     define(["knockout", "jquery", "jquery.ui.sortable"], factory); 
 
    } else { 
 
     factory(window.ko, jQuery); 
 
    } 
 
})(function (ko, $) { 
 
    console.log('factory working'); 
 
});

+0

Спасибо, но не повезло с этим, к сожалению ... –

+1

Я обновил решение. В вашем примере темы есть один дополнительный вызов функции. Без него должно работать –

+0

Thanx, Vitalii. Если я следую вашему примеру, сообщение об ошибке исчезнет, ​​но будет заменено на ошибку в функции jQuery.load, которую я вызываю до того, как я сделаю привязку ... »TypeError: $ (...). Load (...). функция « –

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