gpt4 book ai didi

ruby-on-rails - rails 4 + AngularJS : templateUrl for directive not found?

转载 作者:行者123 更新时间:2023-12-01 15:32:40 24 4
gpt4 key购买 nike

我正在尝试在 AngularJS 中创建一个指令以将我的 HTML 拆分为可重用的部分:

app/assets/javascripts/products/directives/products.js:

app.directive('productsfilter', function() {
return {
restrict: 'E',
templateUrl: "/templates/filter-template.html"
}
});

但是,找不到模板:

错误:[$compile:tpload] 加载模板失败:/templates/filter-template.html http://errors.angularjs.org/1.2.20/$compile/tpload?p0=%2Ftemplates %2Ffilter-template.html

我还尝试了 ../templates/filter-template.htmltemplates/filter-template.html 但都没有用。是因为 Rails 的 asset pipeline 吗?

这是我在 app/assets/javascripts 中的文件夹树:

└── products
├── controllers
│   ├── mens_controller.js
│   ├── productscontroller.js
│   ├── womens_eyeglasses_controller.js
│   └── womens_sunglasses_controller.js
├── directives
│   └── products.js
├── filters
│   └── productsfilters.js
├── services
│   └── productsservices.js
└── templates
└── filter-template.html

最佳答案

我遇到了同样的问题。我的模板路径是:

assets/templates/partials/question/multipleChoice.html

当我将模板移动到:

assets/templates/multipleChoice.html
嵌入式:
<%= asset_path('multipleChoice.html') %>
工作了。也许,这是
asset_path()
的限制深入挖掘的方法。

为了使方法能够找到模板,我将其指出,如下所示:

templateUrl: "<%= asset_path('partials/question/multipleChoiceSingleAnswer.html') %>"
它奏效了。 (当然,你得把扩展名改成.js.erb)。

我不想将我的模板放在公用文件夹中。我希望 Rails 为我处理它并使其动态化。

关于ruby-on-rails - rails 4 + AngularJS : templateUrl for directive not found?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com