AngularJS:指令无法使用templateUrl的函数

时间:2014-11-07 02:16:18

标签: angularjs angularjs-directive

提前感谢帮助新手进入棱角分明的世界。

使用angularjs 1.2.23似乎在指令中它应该能够set the templateUrl using a function

目前,以下代码使用简单字符串作为模板URL正常工作:

'use strict';

define(['angular'], function (angular) {

var myModule = angular.module('myModule',[]);

myModule.directive("myDirective", function() {
return {
    restrict : "A",
    templateUrl: '/app/some/directory/template.html',
    link: function(scope, elem, attrs, ctrl) {

        elem.find('a.modal-trigger').bind('click', function(e) {
            elem.find('div.modal').modal('show');
            e.preventDefault();
        });

        elem.find('a.modal-close').bind('click', function(e) {
            elem.find('div.modal').modal('hide');
            e.preventDefault();
        });

    }
};
});

return myModule;

});

但是,当一个函数代替字符串时(遵循其他人在Web上的其他地方提供的文档和示例),则返回函数代码本身。

  templateUrl: function(elem, attr){
    return '/app/some/directory/template.html';
  }

例如,这是在调用templte时请求URL显示的内容:

http://myserver.com/function%20()%7Breturn%20'/app/some/directory/template.html'%7D

我尝试了很多东西,包括玩compile,但似乎无法让它发挥作用。

这是否适用于1.2.23(people say it was since 1.1.4)?我认为它确实如此,我只是做错了。

0 个答案:

没有答案