无法导入ng2-datetime

时间:2016-09-14 18:26:57

标签: angular webpack

我正在尝试将ng2-datetime导入我的应用程序,因为它似乎是唯一可用的限制日期范围的日期选择器弹出窗口。无论如何,根据它的documentation,我通过npm安装了ng2-datetime

然后我导出了文档中列出的bootstrap-datepickerbootstrap-timepicker。我还安装了jQuery并导入了jQuery。然后我导入了NKDateTime组件并将其添加到我的模块声明中。

我得到的只是

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:149:26
Cannot find name 'jQuery'.

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:150:36
Cannot find name '$'.

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:167:18
Cannot find name '$'.

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:171:26
Cannot find name 'jQuery'.

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:172:36
Cannot find name '$'.

ERROR in [default] C:\Users\rakibler\Projects\efile\node_modules\ng2-datetime\src\ng2-datetime\ng2-datetime.ts:198:18
Cannot find name '$'.

我正在使用angular2 RC7angular-cli: 1.0.0-beta.11-webpack.9-4

如果这是一个难以克服的问题,我可以使用任何其他日期选择器来限制最小和最大日期值。

4 个答案:

答案 0 :(得分:2)

我有类似的问题。我通过安装jquery类型定义来解决它。

[0,1,2,3,4,5]

答案 1 :(得分:1)

我用以下命令修复它: npm install @types/jquery --save-dev

有关详情:https://github.com/AngularClass/angular2-webpack-starter/wiki/How-to-include-jQuery

答案 2 :(得分:0)

  1. 更新 tsconfig.json 文件

    npm install @ types / jquery --save-dev

  2. 然后添加

    import itertools, operator, functools, time
    def naive(data, k):
        return max(functools.reduce(operator.mul, comb) for comb in itertools.combinations(data, k))
    
    test_input = [([1,2,3,4,5,6,7,8], 4), ([1,-2,3,4,5,100,2,3,1], 4),
                  ([-10,-10,1,3,2], 4), ([1000,7,-6,2,2],4),
                  ([-1, 0, 1], 2), ([2, 5, 8, 9, 1, 3, 7], 4),
                  ([-1, -1, 2, 1], 2), ([-1000, -1, 2, 3], 2),
                  ([3, 5, 2, 8, 3], 2), ([-1000, -1, 2, 3, 4, 5, 6, 7], 2)]
    
    for t, k in test_input:
        print(t, k, kmaxprod_v2(t, k), naive(t, k))
    
    ne = 0
    t = np.zeros((3,))
    import random
    for k in range(2, 20):
      for n in range(k, 24):
        print('n =', n, ': k =', k, 'errors:', ne, 'total time O(n), naive:', np.diff(t))
        for _ in range(100):
            data = [random.randrange(-14, 15) for _ in range(n)]
            t[0] += time.time()
            a = kmaxprod_v2(data, k)
            t[1] += time.time()
            b = naive(data, k)
            t[2] += time.time()
            if a != b:
                ne += 1
                print(data, k, a, b)
    
    1. 需要导入一些库:

      import'bootstrap / dist / css / bootstrap.css'; import'jquery / dist / jquery.min.js'; import'ng2-datetime / src / vendor / bootstrap-datepicker / bootstrap-datepicker3.min.css'; import'ng2-datetime / src / vendor / bootstrap-datepicker / bootstrap-datepicker.min.js'; import'ng2-datetime / src / vendor / bootstrap-timepicker / css / bootstrap-timepicker.min.css'; import'ng2-datetime / src / vendor / bootstrap-timepicker / js / bootstrap-timepicker.js';

    2. 我正在使用angular-seed,所以我将这样配置:

      "types": [
      //...., your code
      "jquery" // <- add this
      ]
      

答案 3 :(得分:0)

快速简便的解决方法:

  • 安装"ng2-datetime": "1.2.1"
  • 安装"@types/jquery": "^2.0.33"
  • tsconfig.json
  • 中指定"types": ["jquery"]

这解决了我的所有问题。