Вопрос

Не работает пример из академии для визуального модуля

Пытаюсь подключить пример из Академии https://academy.terrasoft.ru/documents/technic-sdk/7-13/klientskie-modu…

для визуального модуля ContactPageV2 следующим образом:



                init: function() {

                    debugger;

                    this.callParent(arguments);

                    UsrExampleUtilsModule.showInformation("Вызов метода init()");

                },



Пишет ошибку - undefined



Хотя все зависимости прописаны:

define("ContactPageV2", ["UsrExampleUtilsModule"], function(UsrExampleUtilsModule) {



В чем может быть причина?

Нравится

5 комментариев
Лучший ответ

Марат Тазюков,

CSS всегда подключают последними и не передают в function.

Важен порядок.

Измените следующим образом:

define("ContactPageV2", ["css!UsrContactPageV2CSS", "UsrExampleUtilsModule"], 
    function(UsrExampleUtilsModule) {
    //Нужно изменить на 
define("ContactPageV2", ["UsrExampleUtilsModule", "css!UsrContactPageV2CSS"], 
    function(UsrExampleUtilsModule) {

 

Добрый день. В define модуля префикс Usr не забыли добавить? Или скопировали как есть из академии? 

Разместите в посте полный код обоих схем, так проще будет помочь.

define("ContactPageV2", ["css!UsrContactPageV2CSS", "UsrExampleUtilsModule"], function(UsrExampleUtilsModule) {

    return {

        entitySchemaName: "Contact",

        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,

        modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,

        diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,

        methods: {

            init: function() {

                debugger;

                this.callParent(arguments);

                UsrExampleUtilsModule.showInformation("Вызов метода init()");

            }

        },

        rules: {},

        businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/

    };

});

define("UsrExampleUtilsModule", [],

    function() {

        return {

                // Метод, который отображает информационное окно с сообщением. Сообщение, выводимое в окне,

                // передается в метод в качестве аргумента information.

                showInformation: function(information) {

                    alert(information);

                }

        };

    });

Марат Тазюков,

CSS всегда подключают последними и не передают в function.

Важен порядок.

Измените следующим образом:

define("ContactPageV2", ["css!UsrContactPageV2CSS", "UsrExampleUtilsModule"], 
    function(UsrExampleUtilsModule) {
    //Нужно изменить на 
define("ContactPageV2", ["UsrExampleUtilsModule", "css!UsrContactPageV2CSS"], 
    function(UsrExampleUtilsModule) {

 

Спасибо Александр. Не подскажете, можно ли таким же образом  подключить java-script библиотеку. Любую ли библиотеку можно подключить? И если можно, то как ее оформить в виде модуля? Есть ли какая-то инструкция на этот счет?

Марат, похожее обсуждали в соседней теме.

Показать все комментарии