1

我将 SmartAdmin 用于 Angular,最近我将 Angular 从 1.4.12 更新到 Angular v1.6.6,之后我发现当我在使用 JarvisWidget 的状态之间切换时,JarvisWidgets 的 JavaScript 库(更具体地说,第 319-325 行)未压缩的 jarvis.widget.js)

/**
  * Force users to use an id(it’s needed for the local storage).
  **/
  if (!$(‘#’ + self.objId).length) {
    alert(‘It looks like your using a class instead of an ID, dont do that!’);
  }

每次打开页面时都会发出警报。在不修改 JarvisWidget 库的这一部分的情况下,如何在没有 JarvisWidgets 的页面上避免此警报(以正确的方式)?为什么在我的情况下会触发此警报?

4

1 回答 1

0

在适应新版本的 angular-ui-router#1.0.11 之前的临时解决方案是恢复为 angular-ui-router#0.3.2 然后替换代码如下:

// link function in directive in jarvisWidget.js

link: function(scope, element, attributes) {
  if(element.data('widget-color'))
    element.addClass('jarviswidget-color-' + element.data('widget-color'));

  element.find('.widget-body').prepend('<div class="jarviswidget-editbox"><input class="form-control" type="text"></div>');

  element.addClass('jarviswidget jarviswidget-sortable');
  $rootScope.$emit('jarvisWidgetAdded', {widget: element, id: attributes.id });
}

// Body of the jarvisWidgetAdded listener function in widgetGrid.js:

var widget = widgetPackage.widget;
var widgetId = widgetPackage.id;
if (widgetIds.indexOf(widgetId) == -1) {
  widgetIds.push(widgetId);
  $timeout(function () {
    setupWidgets(element, widgetIds)
  }, 100);
}

请写一个其他的解决方案!

于 2017-11-28T10:53:08.713 回答