javascript - 根据用户输入在 Angular 指令中设置模板或 templateUrl

标签 javascript angularjs angularjs-directive

我有这样简单的指令:

app.directive('sample',function(){
 return{
           restrict:'E',
    template:'<a href="#">Hello sample</a>',
    templateUrl:''
 }
});

我希望当用户在这样的标签中声明 templateUrl 时:

<sample template="some url"></sample>

使用 templateUrl 但如果没有设置,则使用指令中的默认模板

最佳答案

templatetemplateUrl 可以指定为带有两个参数的函数 - tElementtAttrs

一种简单的方法是移动您的默认模板并在 templateUrl 函数中执行您的逻辑:

app.directive("sample", [
  function() {

    var defaultTemplate = 'default.html';

    return {
      restrict: 'E',
      templateUrl: function (tElement, tAttrs) {
        return tAttrs.template || defaultTemplate;
      }
    }
  }
]);

演示:http://plnkr.co/edit/rrPicuzzb6YF4Z6yh3Rn?p=preview

关于javascript - 根据用户输入在 Angular 指令中设置模板或 templateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333956/

相关文章:

javascript - IOS 上的 PWA 推送通知

javascript - ionic /Angular ng-click 调用错误的函数

angularjs - $q.all 的 Jasmine 单元测试

javascript - 如何在 Angular 中制作自定义指令以使用谷歌地图计算距离

AngularJS错误: [$compile:nonassign]

javascript - 如何确定 img onerror 是否由于没有互联网连接或错误 (/dead) url 而发生?

javascript - 打开时模态内的模态,仅先关闭 - Bootstrap

javascript - 如何在 jquery 图像幻灯片上添加文本?

javascript - Angular 插入的 HTML 未附加到 Controller

javascript - 如何在现有应用程序中添加 Angular js 模块