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>

Please, read this article.

您可以使用 $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。