Steam://链接不"不安全"

时间:2014-04-07 01:52:19

标签: angularjs ruby-on-rails-3 steam

我试图让Steam添加朋友'工作链接,但由于某种原因,我的卫生设施不起作用。我对角度(第一个应用程序)非常新,所以我可能会遗漏一些巨大/明显的东西。这是我添加到配置和我的HTML中的代码。我使用的是角1.1.5。下面的蒸汽链接显示为"不安全"并且不起作用。卫生设施似乎没有按预期运作。

提前致谢!

@app.config(['$routeProvider', ($routeProvider) ->
   $routeProvider.
  when('/casters', {
    templateUrl: '../templates/casters/index.html',
        controller: 'CasterIndexCtrl'
      }).
    otherwise({
      templateUrl: '../templates/home.html',
      controller: 'HomeCtrl'
    }) 
], 
['$compileProvider', ($compileProvider) ->
$compileProvider.urlSanitizationWhitelist(/^\s*(https?|steam|mailto|file):/);
])

<tr ng-repeat="caster in casters">
    <td><a ng-href="steam://friends/add/{{caster.steam_id}}"><button type="button" class="butn btn-link">Add</button></a></td>
    <td>{{caster.name}}</td>
    <td><a href="http://twitch.tv/{{caster.twitch}}" target="_blank">{{caster.twitch}}</a></td>
    <td>Column content</td>
  </tr>

1 个答案:

答案 0 :(得分:2)

您需要进行href清理:

$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|steam):/);

这基本上是steam附加到正则表达式in santizeUri.js

相信 urlSanitizationWhitelist在版本1.2中已更改?我记得有一个类似的问题让这个基于博客工作,只是在源头挖掘,直到我找到答案。当我遇到同样的问题时,有角度的文档已经失效,但看起来they have been updated有这些信息。

此外,请确保您将ngSanitize作为依赖项并引用angular-sanitize.js文件。

编辑:哦,我想念你,依靠1.1.5。我会看看我是否可以在该版本中追踪它。

编辑2:所以我只使用编译覆盖创建了a plunk以允许使用蒸汽,这样可以启动蒸汽。

然后,我注意到你将两个配置功能传递给.config(我想,我不会读coffeescript)。

试试这个:

@app.config(['$routeProvider','$compileProvider', ($routeProvider, $compileProvider) ->
   $routeProvider.
  when('/casters', {
    templateUrl: '../templates/casters/index.html',
        controller: 'CasterIndexCtrl'
      }).
    otherwise({
      templateUrl: '../templates/home.html',
      controller: 'HomeCtrl'
    }) 

    $compileProvider.urlSanitizationWhitelist(/^\s*(https?|steam|mailto|file):/);
])

http://code.angularjs.org/1.1.5/docs/api/angular.Module

角1.1.5的文档非常糟糕。他们并没有真正清楚地解释整个阵列喷射器的事情。这个configFn可以是单个函数,也可以是要注入函数(最后一个数组元素)的依赖项数组。