javascript - 使用 PrimeNG 组件时出现问题(未找到指令注释)

标签 javascript angular primeng

我在使用 PrimeNG 组件 (beta5) 和 angular2 (rc.1) 时遇到问题。当尝试使用任何组件时,例如菜单栏,我总是收到错误

No Directive annotation found on Menubar

我刚刚开始学习 Angular 和 PrimeNG,所以我可能做错了什么。但经过多次谷歌搜索后我找不到任何帮助。

上面好像没有注释是什么原因 菜单栏组件?我做错了什么?

请注意,我正在尝试使用纯 JavaScript,即不是 TypeScript。 (嗯,事实上,我正在使用 Python [via Brython],但这完全是另一回事。)

我的index.html 开始是这样的:

<script src="node_modules/es6-shim/es6-shim.min.js"></script>

<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>

<script src="node_modules/rxjs/bundles/Rx.umd.js"></script>
<script src="node_modules/@angular/core/core.umd.js"></script>
<script src="node_modules/@angular/common/common.umd.js"></script>
<script src="node_modules/@angular/compiler/compiler.umd.js"></script>
<script src="node_modules/@angular/platform-browser/platform-browser.umd.js"></script>
<script src="node_modules/@angular/platform-browser-dynamic/platform-browser-dynamic.umd.js"></script>

<!-- SystemJS -->
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="app/systemjs.config.js"></script>

<!-- PRIME NG-->
<link rel="stylesheet" type="text/css" href="node_modules/primeui/themes/omega/theme.css" />
<link rel="stylesheet" type="text/css" href="assets/font-awesome-4.6.2/css/font-awesome.min.css" />
<link rel="stylesheet" type="text/css" href="node_modules/primeui/primeui-ng-all.min.css" />

 <script src='app/main.js'></script>

我的 app/main.js 很简单:

(function(app) {
  document.addEventListener('DOMContentLoaded', function() {
    System.import("primeng/primeng").then(function(primeng) {
        app.AppComponent =
            ng.core.Component({
                selector: 'my-app',
                template: '<h1>My First Angular 2 App</h1>',
                directives: [primeng.Menubar]
            })
            .Class({
                constructor: function() {}
            });
        ng.platformBrowserDynamic.bootstrap(app.AppComponent);
    });
  });
})(window.app || (window.app = {}));

app/system.config.js 脚本包含:

(function(global) {

   // map tells the System loader where to look for things
var map = {
    'app':                        'app', // 'dist',
    'rxjs':                       'node_modules/rxjs',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    '@angular':                   'node_modules/@angular',
    'primeng':                    'node_modules/primeng'
};

// packages tells the System loader how to load when no filename and/or no extension
var packages = {
//         'app':                        { main: 'boot.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
    'primeng':                    { defaultExtension: 'js' }
};

var packageNames = [
    '@angular/common',
    '@angular/compiler',
    '@angular/core',
    '@angular/http',
    '@angular/platform-browser',
    '@angular/platform-browser-dynamic',
    '@angular/router',
    '@angular/router-deprecated',
    '@angular/testing',
    '@angular/upgrade',
];

// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function(pkgName) {
    packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

var config = {
    map: map,
    packages: packages
}

// filterSystemConfig - index.html's chance to modify config before we register it.
if (global.filterSystemConfig) { global.filterSystemConfig(config); }

System.config(config);

})(this);

最佳答案

您应该查看 PrimeNG 的安装。这是一个测试版,使您能够使用 Angular2 中的组件。它与 PrimeUI 类似。

有关安装说明,请查看此链接 http://www.primefaces.org/primeng/#/setup

有一个快速入门和关于如何启动和运行它的很好的解释。不幸的是,AppComponent 是用 TypeScript 编写的,但它应该为您提供有关如何继续的很好的指导。

除此之外,没有必要在 index.html 中添加 @angular js 文件。它们通过 SystemJS 加载

关于javascript - 使用 PrimeNG 组件时出现问题(未找到指令注释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133488/

相关文章:

javascript - Angular2 - 未捕获的 ReferenceError : ng is not defined

angular - 核心.js :4197 ERROR TypeError: chart_js__WEBPACK_IMPORTED_MODULE_2__ is not a constructor

javascript - 可滚动的 primeng 数据表模板标题

angular - 带有货币的 PrimeNG p-inputNumber 不会强制仅使用移动设备输入数字

javascript - 为什么单击提交按钮后会提交此表单

javascript - 循环内的 Ajax 调用需要顺序响应

javascript - 如何在 Angular 6 中使用外部 JS 文件

css - Angular 组件元素在 ie11 中并不总是可设置样式

javascript - 标准化堆积条形图绘制问题。无论数据如何,所有矩形均等分

javascript - 在 Node 中模拟一个使用链式函数调用的 Node 模块