2016-05-16 4 views
0

Im работает с suitescript 2.0 (netsuite) и Im интересно, как бы я мог включить пользовательский класс (объект), используя его новый API. Например, я пытаюсь включить класс контроллера, но получаю предупреждение «модуль не найден». См фрагмент нижеSuiteScript 2.0 - Включая пользовательский файл

/** 
    *@NApiVersion 2.x 
    *@NScriptType Restlet 
    */ 
    define(['N/record', 'N/error', "src/My_Controller"], 
     function (record, error, My_Controller) { 
      var controller = new My_Controller(); 
      ... 

сообщение об ошибке: Module does not exist: src/My_Controller.js когда на самом деле она есть. Это правильный способ сделать это?

Центр справки NetSuite не имеет ничего о включении пользовательских/вспомогательной Javascript

ответ

2

Вы ссылаетесь пользовательские модули по их пути в картотеке. Это может быть либо относительно текущего файла, либо относительно корня в Файловом Кабинете. Так это будет выглядеть примерно так:

define(['N/record', 'N/error', '/SuiteScripts/my-project/src/My_Controller'], ...) 

или:

define(['N/record', 'N/error', './src/My_Controller'], ...) 

Если предположить, что src находится в том же каталоге, что и этот файл.

+0

Это сделало меня еще на один шаг, но все еще получаю эту ошибку: TypeError: My_Controller не является функцией. Ill проверить мой экспорт, но спасибо – Coldstar

+1

Вам нужно определить свой пользовательский файл как модуль AMD, используя функцию 'define'. Вашему модулю нужно будет экспортировать функцию 'construct' или любое другое имя, которое вы хотите вызвать, а затем вы будете ссылаться на нее в своем Restlet как' My_Controller.construct() ' – erictgrubaugh

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