【问题标题】:coffeescript angular function call咖啡脚本角度函数调用
【发布时间】:2013-09-30 23:03:50
【问题描述】:

我想分享一个推荐链接,但我想知道是否可以在已经是文字的函数调用中嵌入一个变量。

在我的控制器中:

$scope.get_share_link = (link) ->
  text = "http://www.whatever.com/share?u=" + encodeURIComponent(link)
  text

在我看来(咖啡脚本)。

%a{:href=>"{{ get_share_link(link_url) }}"}
  share

我可以这样做吗?目前我得到http://www.whatever.com/share?u=link,当然,这不是解决link

【问题讨论】:

  • 再次声明,如果您使用字符串插值,请仅使用双引号。

标签: javascript angularjs coffeescript haml


【解决方案1】:

老实说,我不确定你是否能做到你写的,但我很确定这可行。

$scope.get_share_link = function(link) {
    return 'http://www.whatever.com/share?u=' + encodeURIComponent(link);
};

然后:

$scope.get_share_link("myurl")

返回:http://www.whatever.com/share?u=myurl

【讨论】:

    【解决方案2】:

    你需要在某个地方有 $scope.link_url

     $scope.link_url = "http://google.com"
    
     $scope.get_share_link = (link) ->
       "http://www.whatever.com/share?u=" + encodeURIComponent(link)
    

    在此处查看工作示例http://jsbin.com/esuRIZo/2/edit?html,js,output

    【讨论】:

    • CoffeeScript 插入双引号字符串,因此您应该只在计划在字符串中使用变量或表达式的情况下使用它们。有趣的是,您的第二个字符串将是完美的,"http://www.whatever.com/share?u=#{encodeURLComponent(link)}"。但是,您的第一个字符串实际上应该是单引号。
    • link_url 已经存在。它特定于每个条目,因此link_url 对于ng-repeat 的每个实例都是不同的。它不在全局范围内。
    【解决方案3】:

    好的,已排序。我正在观看 egghead.io 视频,但我不知道过滤器可以像函数调用一样使用!现在我觉得很傻。

    %a{:href=>"http://www.whatever.com/u={{link | encodeURIComponent}}"}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2016-06-20
      相关资源
      最近更新 更多