Angular指令templateUrl尝试从Express获取GET

时间:2016-06-20 16:58:44

标签: angularjs express angular-directive

我试图让第三方Angular指令(ngCart)与我的Angular应用程序一起使用。似乎Popen.stderr指令正在寻找一个templateUrl作为指令的相对路径,而是看起来Express试图提供文件而不是指令在相对{{1}找到HTML文件。路径。

项目结构

ngcart

server.js

templateUrl

导致问题的第三方指令文件:

projectName
    | - bower_components/
    | - node_modules/
    | - public/
        | - css
        | - index.html
        | - app.js (angular app)
    | - src/
        | - server.js (express app)
        | - routes/
        | - models/
    | - package.json

我得到的控制台错误是: ... app.use("/", express.static("public")); app.use('/bower_components', express.static(__dirname + '/../bower_components')); app.listen(8000, function () { console.log("App is listening"); });

似乎express正在尝试在第三方指令内的templateUrl: function(element, attrs) { if (typeof attrs.templateUrl == 'undefined') { return 'template/ngCart/addtocart.html'; // This is the relative path that's freaking out } else { return attrs.templateUrl; } } 文件夹中提供HTML文件,但我只是想让它成为HTML文件的相对路径,而不会明确涉及。< / p>

2 个答案:

答案 0 :(得分:0)

正如@Claies在评论中指出的那样,有人把这个问题带到了ngCart(thread found here)的创建者那里,他回答说你基本上应该把模板文件复制到一个名为的文件夹中主公共目录中的“模板”。但ngCart documentation中的任何地方都没有记录,所以希望这可以帮助将来的某个人。

看来这是引入具有自己模板文件的第三方角度指令的最常用方法。

答案 1 :(得分:0)

<强>更新

我不是AngularJS的专家,我整个下午一直在与编程伙伴讨论这个问题。

最终我们绊倒了another question on SO,这描述了一个更优雅的解决方案。

(我还对GitHub问题跟踪页面发表了评论,以供将来参考。)

简而言之:

<ngcart-summary template-url="/libraries/ngCart/template/ngCart/summary.html"></ngcart-summary>