【发布时间】:2016-05-26 10:13:51
【问题描述】:
所以我已经获得了使用 Phoenix 的角度,但是当我尝试将我的控制器移动到 web/static/js/controllers 下的单独文件时,它们没有加载。我猜这与早午餐有关,但我不确定……有什么想法吗?
谢谢!
【问题讨论】:
标签: elixir phoenix-framework brunch
所以我已经获得了使用 Phoenix 的角度,但是当我尝试将我的控制器移动到 web/static/js/controllers 下的单独文件时,它们没有加载。我猜这与早午餐有关,但我不确定……有什么想法吗?
谢谢!
【问题讨论】:
标签: elixir phoenix-framework brunch
我自己以前也遇到过这个问题。我相信这与早午餐有关。你试过运行mix phoenix.digest吗?
如果我没记错的话,如果您将文件移动到 priv/static 它应该可以工作(而不是它们位于 Web 目录中),但我认为这不是正确的方法。
【讨论】:
mix phoenix.digest,但我必须阅读更多关于它的内容,因为它似乎没有多大作用......我会尝试转到priv/static,但就像你一样说-我不确定这是正确的方法。无论如何谢谢:)
好吧,我找到了一个解决方案,但它不是很优雅......在 app.js 中你可以做到
import testcontroller from './controllers/test_controller'
没有在实际的控制器 JS 文件中导出(名为 test_controller.js,请注意在 app.js 中您没有编写 .js 扩展名)但是就像我说的那样 - 这不是最优雅的解决方案,我想自动加载目录中的文件,而不是指定每个文件......
【讨论】:
已修复! 首先,我用 Gulp 替换了 Brunch.io(你可以在这里找到一个很好的指南 - http://bryaninspired.com/phoenix-0-10-with-gulp-and-jspm/) 我遇到的第二个问题是 jspm 没有加载我安装的包。这里的问题是在 config.js 中我给出了绝对路径而不是相对路径:
paths: {
"github:*": "/jspm_packages/github/*",
"npm:*": "/jspm_packages/npm/*"
}
现在它可以很好地加载 AngularJS,以及我放在 web/static/js 中的任何 JS 文件,包括子目录。 现在让我们看看它是否能够加载我的 Angular HTML 文件....
编辑
似乎加载 Angular 是一回事,但实际上 running 我的 Angular 代码不起作用......我试图找出原因......我认为它与 SystemJS 或 Gulp 有关.
奇怪的是,非角度代码(就像 test.js 文件中的一个简单的console.log)运行得很好。 angular.module('blah',[]).whatever 中的任何东西似乎都没有运行.....
编辑 #2 - 已修复! 似乎我忘记在我的 JS 中添加以下内容
angular.element(document).ready(function() {
angular.bootstrap(document, ['ApplicationName']);
});
别忘了在准备好的文档上引导 Angular!
【讨论】: