У меня есть вопрос, который касается условных частично-подобных просмотров в AngularJS. Пример ниже не очень оптимален. Он также возвращает ошибку, относящуюся к строке $compile(element.contents())(scope)
, в которой говорится, что я не могу использовать scope
в качестве функции, но в противном случае она не будет отображать все правильно. Случай использования заключается в следующем:условных просмотров в AngularJS
Я запрашивающей маршрут через
$http
, который возвращает массив объектовЯ
ng-repeat
что вернулся массив объектовДля каждого объекта (давайте назовите его
obj
) значениеobj.view_edit
.Если
obj.type
равенplugin
,<plugin></plugin>
директива вставляется
Это будет выглядеть так:
<plugin view="content.view_edit"></plugin>
Моя Директива выглядит следующим образом:
directive('plugin', function($compile) {
var linker = function(scope, element, attrs) {
console.log(scope.view);
element.html(scope.view).show();
$compile(element.contents())(scope);
}
return {
restrict:"E",
link: linker,
scope: {
view:'='
}
}
})
У вас есть любые лучшие решения?
Спасибо! Я справился с этой проблемой, используя ваш подход с помощью [ngSwitch] (https://docs.angularjs.org/api/ng/directive/ngSwitch) 'ng-switch =" content.type "и' ng-switch-when = «плагин» для каждого типа. – barfoos