我正在学习AngularJS,遇到过一个场景,不知道什么是最好的方法。
以下是该方案。
html网页正在服务器https://example.com/com/server/上运行,并且可以添加/forms/resource/error.html or forms/src/main/abc.js
等附加网址
当我尝试像下面这样包含时,它会给我404 error
,因为它没有找到确切的路径
<div ng-messages-include="error.html"></div>
它试图明显地找到下面位置的html并给出错误,我可以给这个路径相对吗?尝试过几个选项并不像单引号那样工作 https://example.com/com/server/error.html
实际路径应为https://example.com/com/server/form/resources/error.html
我知道我可以提供像
这样的路径<div ng-messages-include="form/resources/error.html"> </div>
但是假设路径相对较长,如果我需要在大约50个位置添加它,会使html看起来很难看。
有关以下方法的建议
创建自定义指令errorMessage
,然后添加为<error-message><error-message>
并返回错误消息html模板,在指令中我可以给出实际html模板的长路径
或者在$ scope对象中创建一个变量,比如location,然后在那里设置完整的字符串,使用如下所示
<div ng-messages-include='{{location}}/error.html'></div> //not sure of the syntax
答案 0 :(得分:0)
如果路径“应为https://example.com/com/server/form/resources/error.html”,则将其写为源代码中的cuch。绝对路径总是正确的,为什么不使用呢?
现在如果你担心重复,你可以写一个自定义指令。
另一个选择是拥有一个“本地”变量,一个范围属性,如errorTemplateURL
:
$scope.errorTemplateURL= 'https://example.com/com/server/form/resources/error.html';
然后您将用作:
<div ng-messages-include="{{errorTemplateURL}}"></div>
但是如果你需要跨控制器共享该变量,你应该创建一个服务并将其注入任何需要它的控制器。
注意:它是ng-messages-include
而不是ng-message-include
。