ng-include 抛出 [$parse:syntax] 错误
ng-include throws [$parse:syntax] error
我正在尝试给出 ng-include="'http://www.myxyzsite.com/assets/view/partial.html'"
。但它给出了类似
的错误
Syntax Error: Token ':' not a primary expression at column 5 of the
expression [http://www.myxyzsite.com/assets/view/partial.html]
starting at
[http://www.myxyzsite.com/assets/view/partial.html].
是否可以使用 ng-include
绝对路径?
有人知道我做错了什么吗?
您不能包含对 ng-include
的引用,因为它不是内置于 Angular 的。
但是您可以创建自己的指令来执行此操作。您应该做的就是向提供的 url
发送 http request
(假设服务器 url 引用正在实施 CORS)
您可以创建一个服务并在您的 controller
中使用它来在初始化时获取内容。
更新:
包括跨域
默认情况下您不能包含跨域文件,但是可以包含来自其他域的文件。
在您的 Web 应用程序的 config
功能中添加合法文件 and/or 域的白名单:
<body ng-app="yourApp">
<div ng-include="'http://www.website.no/angular_include.asp'"></div>
<script>
var app = angular.module('yourApp', [])
app.config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'http://www.website.no/**'
]);
});
</script>
</body>
您可以使用 $templateCache
对象将您的实时数据放入其中并在
之后使用 ng-include
// read page using get
$http.get('link-to-page', {cache:$templateCache});
并且您可以在使用 ng-include
指令后包含此数据
ng:include src="link-to-page"></ng:include>
请避免使用 url 中的“http://www.myxyzsite.com/assets/view/”,只需将 partial.html 和 运行 放在一起,如果它不起作用,请转到控制台并转到网络部分,然后在左侧您可以看到所有资源(页面),包括 "partial.html" 和 select 该资源,在右侧您可以看到请求的 URL link 然后您可以看到路径并根据此调整代码中的 URL。
我正在尝试给出 ng-include="'http://www.myxyzsite.com/assets/view/partial.html'"
。但它给出了类似
Syntax Error: Token ':' not a primary expression at column 5 of the expression [http://www.myxyzsite.com/assets/view/partial.html] starting at [http://www.myxyzsite.com/assets/view/partial.html].
是否可以使用 ng-include
绝对路径?
有人知道我做错了什么吗?
您不能包含对 ng-include
的引用,因为它不是内置于 Angular 的。
但是您可以创建自己的指令来执行此操作。您应该做的就是向提供的 url
发送 http request
(假设服务器 url 引用正在实施 CORS)
您可以创建一个服务并在您的 controller
中使用它来在初始化时获取内容。
更新:
包括跨域
默认情况下您不能包含跨域文件,但是可以包含来自其他域的文件。
在您的 Web 应用程序的 config
功能中添加合法文件 and/or 域的白名单:
<body ng-app="yourApp">
<div ng-include="'http://www.website.no/angular_include.asp'"></div>
<script>
var app = angular.module('yourApp', [])
app.config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'http://www.website.no/**'
]);
});
</script>
</body>
您可以使用 $templateCache
对象将您的实时数据放入其中并在
ng-include
// read page using get
$http.get('link-to-page', {cache:$templateCache});
并且您可以在使用 ng-include
指令后包含此数据
ng:include src="link-to-page"></ng:include>
请避免使用 url 中的“http://www.myxyzsite.com/assets/view/”,只需将 partial.html 和 运行 放在一起,如果它不起作用,请转到控制台并转到网络部分,然后在左侧您可以看到所有资源(页面),包括 "partial.html" 和 select 该资源,在右侧您可以看到请求的 URL link 然后您可以看到路径并根据此调整代码中的 URL。