当前位置: 首页 > 面试题库 >

角度指令不同模板

仰城
2023-03-14
问题内容

我有一个带有变量类型的指令myDirective。如果我运行,<my-directive type="X">我希望指令使用templateUrl:x-template.html。如果我<my-directive type="Y">愿意,指令可以使用templateUrl:y-template.html。

这是我目前的指令。

app.directive('myDirective', function() {
    var myDirective = {
        templateUrl: 'X-template.html',
        restrict: 'E',
        scope: {
            type: '=' 
        },
    };
    return myDirective;
});

我通过stackoverflow和angular文档阅读,但是没有找到我需要的任何东西。

我现在正在尝试按照以下方式进行操作:

if ($scope.type === 'X') {
    templateUrl: 'X-template.html',
}
else if ($scope.type === 'Y') {
    templateUrl: 'Y-template.html',
}

但是不知道在哪里做。

你们知道这是否可行吗?


问题答案:

您可以使用inside 解决此问题:ng- include``compile

app.directive('myDirective', function() {
    return {
        restrict: 'E',
        compile: function(element, attrs) {
            element.append('<div ng-include="\'' + attrs.type + '-template.html\'"></div>');
        }
    }
});

小提琴



 类似资料:
  • 问题内容: 我正在尝试使用Angular的“装饰器”功能向某些指令添加功能。假设我的指令名称是myDirective。我的代码如下所示: ]); 我不断收到此消息: 尽我所能,指令在装饰器函数运行时已被注册。任何见识将不胜感激! 问题答案: 本文说明了实际上如何将带指令的decorator()使用。 您只需将“指令”作为名称的后缀即可。因此,在我的示例中,我应该一直在做 http://angula

  • 问题内容: 我想对第3方指令(特别是Angular UI Bootstrap)进行较小的修改。我只是想添加指令的范围: 但是我也想让Bower与Angular-Bootstrap保持同步。运行后,我将覆盖所做的更改。 那么,如何与该Bower组件分开扩展该指令? 问题答案: 解决此问题的最简单方法可能是在您的应用上创建与第三方指令同名的指令。这两个指令都将运行,并且您可以使用属性指定运行顺序(优先

  • 问题内容: 任何人都有一个简单的指令来自动显示Bootstrap模式吗?在Bootstrap 3中,他们取消了自动显示模态的功能,因此我不能使用有角度的ng-if show块。任何帮助都会很棒。 问题答案: 已针对angular 1.2和Bootstrap 3.1.1更新: http : //embed.plnkr.co/WJBp7A6M3RB1MLERDXSS/ 我扩展了Ender2050的答案

  • 问题内容: 我很困惑。如果每页只能使用一次,则如何使用位于不同模块,不同.js文件中的指令。看: 因此,我现在如何指向页面上的secondModule,而无需从mainModule.js引用它 问题答案: 有一种解决方案,可以以编程方式在页面上引导几个角度模块(docs)。 您必须从html中删除属性。 定义几个模块: 然后在index.html中执行: 这是使用此解决方案的有效plnkr。

  • 问题内容: 我创建了下面的角度指令, ChildDirective ,在 ParentDirective中使用 这正常工作,并且出现了几个子指令。 我想更新 ParentDirective ,以从服务器获取 childDirective 的列表。因此,我更新了 ParentDirective 代码以进行Ajax调用,然后绘制 ChildDirectives 问题是, childDirectives

  • 我试图使用md-date-locale指令覆盖一个日期选择器输入的角材质选项(如https://material.angularjs.org/latest/api/directive/mdDatepicker中指定的),但它不起作用。 这是一个使用角材料示例来测试的示例 http://codepen.io/Hyperalpha/pen/gmwMdm 如果不可能,我需要在加载后更新datepicke