我正在尝试让 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>
您需要 href 清理:
$compileProvider.aHrefSanitizationWhitelist(/^s*(https?|ftp|mailto|tel|file|steam):/);
这基本上是在 santizeU 中的正则表达式中附加steam
.js
我相信urlSanitizationWhitelist
在 1.2 版中发生了变化?我记得有一个类似的问题,让它基于博客工作,只是在源代码中挖掘,直到我找到答案。当时我遇到了同样的问题,angular的文档已经关闭,但看起来它们已经更新了这些信息。
此外,请确保将ngSanitize
作为依赖项和引用angular-sanitize.js
文件包含在内。
编辑:哦,我想念你在 1.1.5 上。我会看看我是否可以在该修订版中追踪它。
编辑 2:所以我创建了一个只包含编译覆盖以允许 steam 的 plunk,这可以启动 steam。
然后,我注意到你正在向.config
传递两个配置函数(我想,我不读咖啡脚本)。
试试这个:
@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
是单个函数,或者是要注入到函数(最后一个数组元素)中的依赖项数组。