Angularjs指令 - 用空格解析字符串?

时间:2013-07-14 15:55:54

标签: angularjs angularjs-directive

我正在为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共享对话框中不需要单引号时出现的问题。

1 个答案:

答案 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>

DEMO

实际上,您可能甚至不需要指令 - 只需将点击处理程序放在控制器中即可。