小编Cor*_*ant的帖子

在Entity Framework 7中创建自我引用多对多关系

我正在尝试使用Entity Framework 7流畅的API设置我的数据库,以添加自引用的多对多关系.有问题的课程如下:

public class Definition
{
    // Some properties
    public virtual ICollection<Definition> AllowedChildDefinitions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

预期的关系是每个定义可以具有任意数量的子节点.我希望有一个单独的表与父/子列,其中每个父可以有多个子,每个子可以在多个父.

有多对多的例子,以及自引用表的例子,但我无法弄清楚如何将两者结合起来.

c# entity-framework entity-framework-core asp.net-core

7
推荐指数
1
解决办法
1539
查看次数

将上下文传递给Angular 2组件的投影内容(使用ng-content)

我正在编写一个可重用的Angular 2组件来检索和显示表中的数据,并进行服务器端排序,过滤和搜索.我希望表中的每一行都有一个额外的列,其中包含使用ng-context标记的泛型html,我可以这样做.

最常见的情况是使用按钮可以使用每行构造的数据执行操作(例如,导航到条目的特定页面,或删除条目),但似乎没有办法将对象传递给组件的ContentChildren.我也许可以通过直接的DOM操作和检查来实现这一点,但这对于可重用性来说既非常糟糕又不好.

我并不真正关心任何具体的实现方法,只要它:

  • 允许我添加通用html作为组件的子级
  • 可以将父组件中的一些通用数据传递给它的ContentChildren(前面提到的通用html),以便子项上的事件处理程序可以使用它.

我正在使用打字稿,因此首选类型安全的解决方案,但如果需要,我很乐意忽略类型系统.

我正在使用的表组件(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,那么按钮元素可以使用这个参数就足够了.

components typescript angular

5
推荐指数
2
解决办法
5296
查看次数

与tsify和babelify一起使用gulp并没有运行babel

我有以下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)

browserify typescript gulp babeljs

3
推荐指数
1
解决办法
1907
查看次数