Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改Angular ui引导模板的文件夹位置_Javascript_Angularjs_Angular Ui - Fatal编程技术网

Javascript 更改Angular ui引导模板的文件夹位置

Javascript 更改Angular ui引导模板的文件夹位置,javascript,angularjs,angular-ui,Javascript,Angularjs,Angular Ui,我正在尝试将ui-bootstrap.min.js与外部模板一起使用 我得到的错误是: http://localhost:13132/Place/template/timepicker/timepicker.html 404 (Not Found) 我希望对于每个页面,对于每个模板,都可以在下面查找我的模板: http://localhost:13132/js/app/template/... 但我似乎找不到可以改变它指向的位置的地方 有人知道如何进行此更改吗?在github上,templ

我正在尝试将ui-bootstrap.min.js与外部模板一起使用

我得到的错误是:

http://localhost:13132/Place/template/timepicker/timepicker.html 404 (Not Found) 
我希望对于每个页面,对于每个模板,都可以在下面查找我的模板:

http://localhost:13132/js/app/template/...
但我似乎找不到可以改变它指向的位置的地方

有人知道如何进行此更改吗?

在github上,templateUrl是不可配置的。您可以在每个指令定义中更改templateUrl属性

.directive('accordion', function () {
    return {
        restrict:'EA',
        controller:'AccordionController',
        transclude: true,
        replace: false,
        templateUrl: 'template/accordion/accordion.html'
 };

但这将是脆弱和难以维持的。不幸的是,看起来他们不会对此进行配置,但是线程是一个有趣的读物。

这可以使用
$provide.decorator

了解有关此问题的更多信息:


更新:我已经测试了这个解决方案,它也适用于其他模板,只需要对app.js做一些小的更改。我现在已经用timepicker.html和day.html测试了这一点,为timepickerDirective和daypickerDirective定义了一个装饰器。后者用于覆盖日历表显示。templateUrl路径是相对于您的应用程序文件夹的,在我的例子中是“partials/fragments/day.html”。

另一个不更改代码的替代方法是添加某种虚拟服务器目录,将
/Place/template
映射到
/js/app/template/
的实际位置


虚拟目录的实现显然在您选择的服务器平台中。

您能提供一个演示吗?。我正在尝试实现这个解决方案,但我没有得到任何运气。这就是我如何为一组模板URL添加前缀(多于1个指令):。不过,这看起来不是最好的解决方案
myApp.config(function($provide) {
  $provide.decorator('datepickerDirective', function($delegate) {
    //array of datepicker directives
    $delegate[0].templateUrl = "my/datepicker.html";
    return $delegate;
  });
});