gpt4 book ai didi

angularjs - 嵌入后如何使 ngIf 工作?

转载 作者:行者123 更新时间:2023-12-04 08:54:04 26 4
gpt4 key购买 nike

我有一个列表组件,我想在其中定义自定义列。这些列被嵌入到组件模板的行中。不幸的是,我不能在这种情况下使用 ngIf。

这是 myList 组件的 $postLink 函数:

const template = $templateCache.get('myList.tpl.html');
const jqTemplate = angular.element(template);
const row = angular.element(jqTemplate.children()[0]);

$transclude(clone => {
row.append(clone);
$element.html(jqTemplate.html());
});

$compile($element.contents())($scope);

这是最小样本的 plnkr: http://plnkr.co/edit/C9Rvs8NiTYsV3pwoPF6a

是不是因为 terminal属性(property)?有人可以启发我为什么 ngIf 不像预期那样工作吗?

最佳答案

我想尝试在 postLink 中执行操作阶段为时已晚,因为它首先应用于子元素。

编译阶段似乎更合适。在那里事情更简单,您甚至不需要使用嵌入或克隆链接功能。范围适用于稍后的状态。

我提供了一个使用指令的解决方案,因为在这种情况下,我发现组件语法更令人困惑。

app.directive('myList', function($templateCache){
return {
bindings: {
list: '='
},
transclude: false,
compile: function(tElement) {
const template = $templateCache.get('myList.tpl.html');
const jqTemplate = angular.element(template);
var elemChildren = tElement.children('div');
jqTemplate.children('.row').append(elemChildren);
tElement.append(jqTemplate);
return {};
}

}

});

http://plnkr.co/edit/MrLJmnMKxO8PVPkzE8KK?p=preview

关于angularjs - 嵌入后如何使 ngIf 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49621059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com