我正在尝试使用Entity Framework 7流畅的API设置我的数据库,以添加自引用的多对多关系.有问题的课程如下:
public class Definition
{
// Some properties
public virtual ICollection<Definition> AllowedChildDefinitions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
预期的关系是每个定义可以具有任意数量的子节点.我希望有一个单独的表与父/子列,其中每个父可以有多个子,每个子可以在多个父.
有多对多的例子,以及自引用表的例子,但我无法弄清楚如何将两者结合起来.
我正在编写一个可重用的Angular 2组件来检索和显示表中的数据,并进行服务器端排序,过滤和搜索.我希望表中的每一行都有一个额外的列,其中包含使用ng-context标记的泛型html,我可以这样做.
最常见的情况是使用按钮可以使用每行构造的数据执行操作(例如,导航到条目的特定页面,或删除条目),但似乎没有办法将对象传递给组件的ContentChildren.我也许可以通过直接的DOM操作和检查来实现这一点,但这对于可重用性来说既非常糟糕又不好.
我并不真正关心任何具体的实现方法,只要它:
我正在使用打字稿,因此首选类型安全的解决方案,但如果需要,我很乐意忽略类型系统.
我正在使用的表组件(my-table)看起来像
<my-table /* some properties */>
<button class="row-button" type="button" (click)="navigate(/* context */)">Navigate</button>
</my-table>
Run Code Online (Sandbox Code Playgroud)
其模板使用ng-content如下:
// table html
<tr *ngFor="let row of rows">
<td *ngFor="let column of row.columns">{{column}}</td>
<td>
<ng-content select=".row-button"></ng-content>
</td>
</tr>
// more table html
Run Code Online (Sandbox Code Playgroud)
如果我可以将参数传递给ng-content,那么按钮元素可以使用这个参数就足够了.
我有以下gulp任务(包括我所要求的所有要求):
const gulp = require("gulp");
const browserify = require("browserify");
const tsify = require("tsify");
const sass = require('gulp-sass');
const fs = require('fs');
const uglify = require('gulp-uglify');
const tslint = require('gulp-tslint');
const gutil = require('gulp-util');
const babelify = require("babelify");
gulp.task('js', function () {
return browserify({
entries: paths.ts + 'App/start.ts',
debug: true
}).plugin("tsify")
.transform(babelify.configure({
presets: ["es2015"]
}))
.bundle()
.on('error', swallowError)
.pipe(fs.createWriteStream(jsOutput + "app.js"));
});
Run Code Online (Sandbox Code Playgroud)
包含package.json中包含的所有必需模块,包括babel-preset-es2015.然而,babelify变换根本没有做任何事情,只要我可以将"es2015"改为任何东西,我得到完全相同的结果(es6输出).
我已经尝试使用指定预设的.babelrc文件,以及指定babelify转换的几种不同方式,包括添加.ts文件扩展名.
我的tsconfig.json有以下内容:
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false, …Run Code Online (Sandbox Code Playgroud)