Угловая миграция от 1,2 до 1,8 выпуска.Html

Программисты Html
Ответить
Anonymous
 Угловая миграция от 1,2 до 1,8 выпуска.

Сообщение Anonymous »

Я новичок в Angular, и я получил задачу перенести старое приложение, используя Angular 1.2 в Angular 1.8, я смог решить большинство проблем, за исключением этого, как вы можете видеть в следующем вытяжке кода, я получаю Scope.rowtemplate = $ templatecache.get (scope.row.row.sempor прекрасно работает с Angular 1.2, но WHEM I мигрирует на Angular 1.8 Значение Scope.RowTemplate больше не подходит во второй директиве, я просто получаю неопределенную.

Код: Выделить всё

app.directive('adaptiveGrid', function ($compile, $templateCache, $timeout)
{
return {
restrict: "A",
scope: {
name: '@',
items: '=',
loadingItems: '=?',
selectRow: '=?',
selectItem: '=?',
functions: '=?',
childGrid: '@',
selectedItems: '=?',
idField: '@?'
},
replace: true,
link: function (scope, elem, attrs)
{
scope.name = scope.name || '';
scope.container = scope.container || "parent";
scope.loadingItems = scope.loadingItems || [];
scope.functions = scope.functions || [];
scope.childGrid = !!scope.childGrid;
scope.selectedItems = scope.selectedItems || false;

if (!scope.items) scope.items = [];

scope.GetTemplate = function ()
{
if (scope.row == 'first')
scope.rowTemplate = elem.parents('.adaptive-grid').first()
.find('script[type="text/ng-template"]').first().text();
else
scope.rowTemplate = $templateCache.get(scope.row);
};

scope.SelectItem = function (a, b, c, d)...;

scope.SelectRow = function (item)...;

scope.GetItems = function ()...;

scope.IsLoading = function (item)...;
},
template: '[list][*]                  'adaptive-grid-row="item" row-template="rowTemplate" functions="functions" ' +
'child-grid="{{childGrid}}" select-item="SelectItem" ng-click="SelectRow(item)"' +
'is-loading="IsLoading(item)" id-field="{{idField}}">[/list]'
};
})
.directive('adaptiveGridRow', function ($compile)
{
return {
restrict: "A",
scope: {
adaptiveGridRow: '=',
selectItem: '=',
functions: '=?',
rowTemplate: '=',
isLoading: '=?',
idField: '@?',
childGrid: '@?'
},
replace: false,
link: function (scope, elem, attrs)
{
scope.Row = elem;
scope.Item = scope.adaptiveGridRow;
scope.childGrid = !!scope.childGrid;

var templateUpdate = function ()
{
scope.Row.html(scope.rowTemplate || '');
$compile(elem.contents())(scope);
};

scope.$watch("rowTemplate", templateUpdate, true);
templateUpdate();
}
};
});
Посмотреть на руководство по угловой миграции, которое я обнаружил:
angularjs html compiler ($ compile)
Из -за 2EE29C5D,
. Директива. Это означает, что вы больше не можете получить доступ к изолированной области из атрибутов на элементе, где определяется изолированная директива.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -1-8-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»