我在本地开发单页应用。
我似乎无法使用Angularjs中的简单自定义指令将HTML文件作为模板加载。如果我尝试使用 template:
属性使用原始html,它可以正常工作,但我需要在此模板中使用超过400行代码,并且一旦我尝试使用 templateUrl:
无任何加载。我尝试了30种可能的路径,包括将HTML文件复制到许多不同的位置,例如C:/my-customer.html,这是我的项目结构:
App--
|
css
|
img
|
js--
|
main.js
|
foundation.js
|
my-customer.html
|
templates--
|
my-customer.html
|
bcf.html
|
fluidType.html
|
start.html
|
my-customer.html
保持简单我正在使用angular docs中的示例这里是我的指令代码(在我的控制器的main.js内):
app.directive('myCustomer', function() {
return {
templateUrl: 'my-customer.html'
};
});
我再次试过像../my-customer.html ../templates/my-customer.html
这样的路径,但是templateUrl:
没有任何工作,我在Windows上没有运行本地Web服务器,如果这有帮助的话。
以下是一些控制台错误,但作为新手不确定它们的含义,我有一种感觉,我需要运行一个Web服务器并通过http解析。
XMLHttpRequest cannot load file:///C:/Users/Dylan/Google%20Drive/PA/Dev/Grossing%20App/templates/my-customer.html. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource.
angular.js:11594 Error: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/Dylan/Google%20Drive/PA/Dev/Grossing%20App/templates/my-customer.html'.
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:87:261
at m (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:83:133)
at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:80:366)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:112:276
at l.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:84)
at l.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:123:195)
at l.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:362)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:17:448
at Object.e [as invoke] (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:37:96)angular.js:11594 (anonymous function)
angular.js:11594 Error: [$compile:tpload] http://errors.angularjs.org/1.3.8/$compile/tpload?p0=templates%2Fmy-customer.html
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:6:416
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:137:65
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:112:276
at l.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:84)
at l.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:123:195)
at l.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:362)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:17:448
at Object.e [as invoke] (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:37:96)
at d (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:17:369)
Angularjs的新手。我在项目中遇到了障碍,现在我完全被困住了。
答案 0 :(得分:12)
它应该已经相对于root了。所以,这应该有效:
app.directive('myCustomer', function() {
return {
templateUrl: '/templates/my-customer.html'
};
});
如果这不起作用,请首先确保您可以浏览模板目录:
http://localhost/templates/my-customer.html
您应该可以直接获取模板。找到模板后,只需删除主机和端口。