Chrome Packaged Apps具有相当严格的内容安全策略。其结果之一是,操作位置(如单击链接)将导致:

'Can't open same-window link to "chrome-extension://lkjasdfjklbdskjasdfjkhfdshjksad/derp.html"; try target="_blank". '

目标_blank将在chrome中打开链接,这不是我想要的。 AngularJS的路由可以在这样的锁定环境中工作吗?

他们的文档给出了Angular应用程序的an example,但是显然不使用路由。

更新

这是单击时给出错误的链接:<a class='walrus-link' ng-href='paystubs/{{walrus.id}}'>Walrus {{id}}!</a>

最佳答案

代替使用href,尝试使用ng-click并使用$ location调用 Controller 的方法以将其重新定位到适当的页面。请参阅AngularJS site上的文档。文档中的以下引号表明$ location服务可能适合您:



您的代码可能看起来像这样:

<a class='walrus-link' ng-click='getPaystub(walrus.id)'>Walrus {{id}}!</a>

并且在您的父 Controller 中,您将需要一个名为'getPaystub'的范围方法,其行类似于:
$scope.getPaystub = function(selectedWalrusId) {
  $location.path('paystubs/'+$scope.walrus.id);
}

这样, Angular 可保持控制力,并且不会导致页面刷新。希望这可以使您处于CSP的范围之内。不幸的是,我无法在打包的应用程序中对此进行测试,但是我在Web应用程序中使用了完全相同的约定,并且它的工作方式非常花哨。

关于javascript - Angular 布线,无需更改位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15392500/

10-09 15:22