我正在尝试在网站上实施Skype Button我正致力于使用Angularjs
Skype API提供的代码如下
</script>
<div id="SkypeButton_Call_mike_1">
<script type="text/javascript">
Skype.ui({
"name": "dropdown",
"element": "SkypeButton_Call_mike_1",
"participants": ["mike"],
"imageSize": 32
});
</script>
</div>
我正在使用angularjs
,因此mike
伪来自我的角model
(控制器)。
$scope.user.skypePseudo = "mike"
然后当我改变
"participants": ["mike"]
以
"participants": ["{{user.skypePseudo}}"]
会抛出此错误
Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.
错误很明显,这意味着我无法使用 onclick ,而应使用 ng-click 。
我试图通过onclick
替换所有ng.click
来修改skype-uri.js,但会收到一些补拙错误。
有人在我面前经历过这个吗?我怎样才能让它发挥作用?
问题可以被问为:有没有办法强制角度接受 onclick
答案 0 :(得分:4)
我认为实现这一目标的最佳方法是创建一个新指令:
angular.module("yourApp")
.directive("skypeUi", function() {
return {
restrict: "E",
template: "<div></div>",
replace: true,
scope: {
participants: "="
},
link: function(scope, element, attrs){
Skype.ui({
"name": "dropdown",
"element": attrs.id,
"participants": scope.participants,
"imageSize": 32
});
}
};
});
所以你可以这样使用;
<skype-ui id="SkypeButton_Call_mike_1" participants="participants">
</skype-ui>
最后在你的控制器中:
$scope.participants = ["mike"];