2016-08-08 100 views
1

我已經在新的Angular 2應用程序(rc4)中安裝了ng2-tree插件,但在遵循this之後。該插件已安裝,位於node_modules文件夾中。在Angular 2新應用程序上安裝後找不到NG2樹模塊

我曾嘗試在此組件使用它:

import {Component} from '@angular/core'; 
import {TreeModel, TreeComponent} from "ng2-tree"; 

@Component({ 
    selector: 'tree-side', 
    templateUrl: '../../pages/tree-side.html', 
    directives: [TreeComponent] 

}) 
export class TreeSideComponent{ 
    private tree: TreeModel = { 
     value: 'Programming languages by programming paradigm', 
     children: [ 
      { 
       value: 'Object-oriented programming', 
       children: [ 
        {value: 'Java'}, 
        {value: 'C++'}, 
        {value: 'C#'} 
       ] 
      }, 
      { 
       value: 'Prototype-based programming', 
       children: [ 
        {value: 'JavaScript'}, 
        {value: 'CoffeeScript'}, 
        {value: 'Lua'} 
       ] 
      } 
     ] 
    }; 
} 

但我得到的NPM控制檯上的錯誤:

404 GET /ng2-tree 

我有如下修改system.config.js代碼,試圖找到一個解決辦法:

var map = { 
    ... 
    'ng2-tree':     'node_modules/ng2-tree' 
}; 
// packages tells the System loader how to load when no filename and/or no extension 
var packages = { 
    ... 
    'ng2-tree':     { defaultExtension: 'js' }, 
}; 

但我以後出現此錯誤:

Error loading http://localhost:3000/node_modules/ng2-tree as "ng2-tree" from http://localhost:3000/app/pages/tree.component.js 

按照Thierry Templier的說明,我嘗試了其他配置。包括lodash插件的配置,導致在修復ng-tree依賴關係後出現與ng-tree相同的問題。

var map = { 
... 
     'ng2-tree':     'node_modules/ng2-tree', 
     'lodash':     'node_modules/lodash' 
    }; 
    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
... 
     'ng2-tree':     { main: 'index.js', defaultExtension: 'js' }, 
     'lodash':     { main: 'index.js', defaultExtension: 'js' } 
    }; 

但在這種情況下,我得到:

[1] 16.08.08 12:04:09 404 GET /tree.component.html 
[1] 16.08.08 12:04:09 404 GET /node-menu.component.html 

Failed to load tree.component.html ; Zone: angular ; Task: Promise.then ; Value: Failed to load tree.component.html 

顯然,這是由於相對路徑的分辨率,但在anycase不符合這個問題。

回答

0

我認爲你錯過了在packages配置main屬性NG2樹:

var packages = { 
    ... 
    'ng2-tree': { main: 'index.js', defaultExtension: 'js' }, 
}; 
+0

我試過之後,我在故宮得到這個錯誤:08年8月16日11點49分55秒404 GET/lodash。我應該對這個插件做同樣的事嗎? – quindimildev

+0

「NPM」上的含義是什麼?當你執行你的應用程序時?如果是這樣,看來ng2-tree具有需要在SystemJS配置中配置的lodash依賴關係... –

+0

我的意思是,運行該項目,我在控制檯上看到該錯誤。在瀏覽器檢查器中,錯誤是:從http:// localhost:3000/node_modules/ng2-tree/src/tree.component.js加載http:// localhost:3000/lodash爲「lodash」時出錯。我試圖對lodash插件也一樣,錯誤是其他:失敗加載tree.component.html – quindimildev

0

我嘗試加載TreeModule時,有一個問題。我已經解決了這個問題。問題出在@angular/cli版本。在package.config文件中\node_modules\ng2-tree變化

"devDependencies": { 
    "@angular/cli": "1.1.1", 
} 

"devDependencies": { 
    "@angular/cli": "#####",// version of your @angular/cli(**You can find it from package.config file in the root folder**) 
} 
相關問題