我正在尝试将 ui-bootstrap.min.js 与外部模板一起使用。
我得到的错误是:
http://localhost:13132/Place/template/timepicker/timepicker.html 404 (Not Found)
我想为每个页面,每个模板,在以下位置查找我的模板:
http://localhost:13132/js/app/template/...
但我似乎找不到可以更改 this 指向的位置的位置。
有人知道如何进行此更改吗?
我正在尝试将 ui-bootstrap.min.js 与外部模板一起使用。
我得到的错误是:
http://localhost:13132/Place/template/timepicker/timepicker.html 404 (Not Found)
我想为每个页面,每个模板,在以下位置查找我的模板:
http://localhost:13132/js/app/template/...
但我似乎找不到可以更改 this 指向的位置的位置。
有人知道如何进行此更改吗?
这可以使用$provide.decorator
阅读有关此问题的更多信息: https ://github.com/angular-ui/bootstrap/issues/743
myApp.config(function($provide) {
$provide.decorator('datepickerDirective', function($delegate) {
//array of datepicker directives
$delegate[0].templateUrl = "my/datepicker.html";
return $delegate;
});
});
更新:我已经测试了这个解决方案,它也适用于其他模板,并且只需要对 app.js 进行那些小的更改。我现在用 timepicker.html 和 day.html 对此进行了测试,为 timepickerDirective 和 daypickerDirective 定义了一个装饰器。后者用于覆盖日历表显示。templateUrl 路径是相对于您的应用程序文件夹的,在我的例子中是"partials/fragments/day.html"。
根据github 上的这个问题,templateUrl 是不可配置的。您可以更改每个指令定义中的 templateUrl 属性
.directive('accordion', function () {
return {
restrict:'EA',
controller:'AccordionController',
transclude: true,
replace: false,
templateUrl: 'template/accordion/accordion.html'
};
但这将是脆弱且难以维护的。不幸的是,看起来他们不会使这个可配置的 - 但线程是一个有趣的阅读。
另一种不更改代码的替代方法是添加某种映射/Place/template到您的实际位置的虚拟服务器目录/js/app/template/
虚拟目录的实现显然是在您选择的服务器平台中。