角度指令范围值

Saj*_*jan 0 javascript angularjs angularjs-directive angularjs-scope

  <tab page="book"> </tab>
  <tab page="dial"> </tab>
  <tab page="groupe"> </tab>
  <tab page="log"> </tab>
  <tab page="star"> </tab>
Run Code Online (Sandbox Code Playgroud)

如你所见,我有一个名为tab的指令,这个选项卡有一个属性页面,

我需要根据页面属性的值 更改templateUrl

如果页面值是page="abc"那么templateUrl应该是 templateUrl: 'tab/abc.html',

这是我的指令代码

contactBook.directive('tab', function() {
    let m = 'tab/default.html';
    return {
        restrict: 'E',
        scope: {
            page: '@',
        },
        templateUrl: m,
        link: function(scope, element, attributes) {
            m = "tab/" + scope.page + ".html";      
        },
    };
});
Run Code Online (Sandbox Code Playgroud)

这在逻辑上是可能的吗?或任何替代方法来做到这一点..?

Sur*_*ogu 7

templateUrl: function(elem,attrs) {
    return "tab/" + attrs.page + ".html" || 'tab/default.html';
},
Run Code Online (Sandbox Code Playgroud)