我正在为facebook feed对话框创建一个指令,我正在尝试将项目标题添加到指令中但是我注意到只要{{current_hotel_title}}在字符串中有空格,angularjs就会抛出以下错误:< / p>
Uncaught Error: Syntax Error: Token 'word2' is an unexpected token at column 4 of the expression [word1 word2] starting at [word2].
指令:
.directive('fb2Share', function(){
return function(scope, element, attrs){
attrs.$observe('fb2Share', function(value) {
//Directive click handler
$(element).click(function(){
scope.$watch(attrs.fb2Title, openDialog);
});
//Open FB feed dialog
var openDialog = function() {
console.log(attrs.fb2Title);
};
});
};
})
HTML:
<a href="javascript:void(0);" data-fb2-share data-fb2-title="{{current_hotel_title}}">Share on Facebook</a>
如果我在当前酒店标题上添加单引号:
data-fb2-title="'{{current_hotel_title}}'"
错误不再出现但是我遇到了在FB共享对话框中不需要单引号时出现的问题。
答案 0 :(得分:0)
如果您只是想查看插值属性值,那么您只需要:
attrs.$observe('fb2Title', function(value){
console.log(value);
// or
console.log(attrs.fb2Title);
}
但在您的情况下,您可以在按钮/ href上使用简单的ng-click
。 ng-click会将{{current_hotel_title}}作为参数传递给click函数。
<a href="javascript:void(0);" ng-click="myClickFunction(current_hotel_title)">GO</a>
实际上,您可能甚至不需要指令 - 只需将点击处理程序放在控制器中即可。