gpt4 book ai didi

javascript - Angular JS - 动态评估指令

转载 作者:行者123 更新时间:2023-12-03 11:03:53 26 4
gpt4 key购买 nike

假设我有几个指令:“戏剧”、“喜剧”,并且由于某种原因它们有很多不同的属性,因此拥有“电影”指令不一定有意义。有没有办法根据范围变量动态评估指令?像这样的事情:

<{{movieType}} movie="{{movie}}"></{{movieType}}>

它的计算结果如下:

<comedy movie={{movie}}></comedy>

我是 Angular 的新手,所以请原谅一些疯狂的想法。

更新:实际上刚刚找到了一篇关于完全相同的问题/解决方案的简洁文章:http://onehungrymind.com/angularjs-dynamic-templates/

基本上作者只有一个指令,但根据请求交换模板:

var getTemplate = function(contentType) {
var template = '';

switch(contentType) {
case 'image':
template = imageTemplate;
break;
case 'video':
template = videoTemplate;
break;
case 'notes':
template = noteTemplate;
break;
}

return template;
}

return {template: getTemplate(type)};

最佳答案

您可以在指令内使用模板函数:

 app.directive('movie', function(){
return {
restrict:'A',
template: function(element, attr){
... define templates, i.e. <comedy />
var contentType = attr.movie;
switch(contentType) {
case 'comedy':
template = comedyTemplate;
break;
case 'drama':
template = dramaTemplate;
break;
case 'suspense':
template = suspenseTemplate;
break;
}
return template;
}
}
})

使用此解决方案,无需手动编译。

关于javascript - Angular JS - 动态评估指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953229/

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