提前感谢帮助新手进入棱角分明的世界。
使用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)?我认为它确实如此,我只是做错了。