Редактор Sitefinity немедленно закрывается - PullRequest
0 голосов
/ 04 ноября 2019

Я добавил угловой модуль моего собственного создания в виджет, который я построил.

Когда я нажимаю, чтобы редактировать этот модуль, он немедленно закрывается. Нет консольных ошибок или предупреждений, нечего указывать почему в логах. Он просто начинает выглядеть так, как будто загружается (серый фон, полоса загрузки), а затем сразу закрывается, как будто ничего не произошло.

Я очень близко смоделировал его на этом модуле выбора нескольких изображений . Файл моего модуля enhanced-image-field.js:

(function ($) {
    var sfFields = angular.module('sfFields');
    sfFields.requires.push('EnhancedImageField'); //<- will break on this line in debugger as expected...
    angular.module('EnhancedImageField', ['sfServices', 'sfImageSelector'])
        .directive('EnhancedImageField', ['serverContext', 'sfMediaService', 'sfMediaFilter', function (serverContext, sfMediaService, sfMediaFilter) {
        //... but code inside here never gets called
    }]);
});

В моем файле DesignerView.Simple.json:

{
  "priority": 1,
  "components": [
    "sf-image-field",
    "sf-expander",
    "sf-style-dropdown"
  ],
  "scripts": [
    "client-components/fields/enhanced-image-field/enhanced-image-field.js"
  ]
}

Если удалить строку sfFields.requires.push('EnhancedImageField');, редактор останетсяоткрытый, хотя и без каких-либо полей или функций, включенных здесь.

Мой designerview-simple.js файл проходит через все вызовы requires, но никогда не вызывает внутренний код:

(function ($) {
     var simpleViewModule = angular.module('simpleViewModule', ['expander', 'designer', 'ngSanitize']);
     angular.module('designer').requires.push('simpleViewModule');
     angular.module('designer').requires.push('sfFields');
     angular.module('designer').requires.push('sfSelectors');
     angular.module('designer').requires.push('ngSanitize');

     simpleViewModule.controller('SimpleCtrl', ['$scope', 'propertyService', function ($scope, propertyService) {
        $scope.feedback.showLoadingIndicator = true;

        propertyService.get()
        .then(
            function (data) {
                //... Code here never gets called!
            }
        )
    }]);
});

Я не слишком знаком с angularjs, ноздесь ничего не выскакивает.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

EnhancedImageField должно быть enhancedImageField, по-видимому, верблюжья оболочка очень важна.

0 голосов
/ 04 ноября 2019
̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶$̶)̶ ̶{̶
    var sfFields = angular.module('sfFields');
    sfFields.requires.push('EnhancedImageField');
    angular.module('EnhancedImageField', ['sfServices', 'sfImageSelector'])
        .directive('EnhancedImageField', ['serverContext', 'sfMediaService', 'sfMediaFilter', function (serverContext, sfMediaService, sfMediaFilter) {
        //... a bunch of code that never gets called
    }]);
̶}̶)̶;̶
...