Rails和angular-dotdotdot:element.dotdotdot不是一个函数

时间:2017-02-06 19:57:55

标签: jquery ruby-on-rails angularjs bower

我正在尝试在我的Rails项目中将angular-dotdotdot directive包含在我的角度应用中。

为此,我使用bower-rails gem来管理我的资产,特别是angular-dotdotdot。因此我有以下文件:

bower.json

{
  "lib": {
    "name": "bower-rails generated lib assets",
    "dependencies": {
    }
  },
  "vendor": {
    "name": "bower-rails generated vendor assets",
    "dependencies": {
      "angular-dotdotdot": "latest"
    }
  }
}

.bowerrc

{
  "directory" : "vendor/assets/bower_components"
}

配置/初始化/ bower_rails.rb

BowerRails.configure do |bower_rails|
  # Tell bower-rails what path should be considered as root. Defaults to Dir.pwd
  # bower_rails.root_path = Dir.pwd

  # Invokes rake bower:install before precompilation. Defaults to false
  # bower_rails.install_before_precompile = true

  # Invokes rake bower:resolve before precompilation. Defaults to false
  # bower_rails.resolve_before_precompile = true

  # Invokes rake bower:clean before precompilation. Defaults to false
  # bower_rails.clean_before_precompile = true

  # Invokes rake bower:install:deployment instead of rake bower:install. Defaults to false
  # bower_rails.use_bower_install_deployment = true
  #
  # Invokes rake bower:install and rake bower:install:deployment with -F (force) flag. Defaults to false
  # bower_rails.force_install = true

  # Change the default directory name
  # bower_rails.bower_components_directory = 'bower_components'

  asset "angular-dotdotdot"
end

vendor / assets / bower_components 中,我有angular-dotdotdot文件夹。

我正在尝试在the method indicated in the repo之后加入指令。

应用/资产/ Javascript角/ BAM-角的应用程序/模块/ bam.js.coffee.erb

@bamApp = angular
  .module('Bam.bamApp', [])
  .directive('dotdotdot', [
    '$timeout'
    ($timeout) ->
      {
        restrict: 'A'
        link: (scope, element, attributes) ->
          scope.$watch attributes.dotdotdot, ->
            $timeout (->
              console.log('before')
              element.dotdotdot()
              console.log('pass')
              return
            ), 400
            console.log('pass1')
            return
          console.log('pass2')
          return
      }
  ])
  .run(->
    console.log 'bamApp running'
  )

然而,当我使用它时,我得到以下错误(两次,而我只使用一次,如果这很重要):

  

错误:element.dotdotdot不是函数

感谢我在我的指令中包含的日志,我可以看到我只在指令定义中传递一次,它在element.dotdotdot()停止,因为它在之前输出但不是通过

看到this question,我检查过我没有加载jQuery两次而且我没有。我正在加载jquery,jquery_ujsjquery.turbolinks

我不知道为什么会收到此错误。

非常感谢任何帮助,提前谢谢!

0 个答案:

没有答案