标签: components

为什么当我从绑定到组件的列表中删除项目时,它会从列表中删除正确的项目,但会重复最后一个项目

我在 Blazor 服务器应用程序中有一个奇怪的行为。

当我有一个对象列表并删除列表中的一个项目时,它会删除列表中的正确项目,但会将数据从最后一项复制到前面的一项。

仅当我将列表数据绑定到我自己的组件时才会发生这种情况。如果我将它直接绑定到输入元素,则不会发生这种情况。

我在一个小代码示例中重现了该行为,如下所示,只需尝试删除第二个项目并查看该行为。

谢谢谁能帮忙...

Blazor 标记

 <table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (User user in _users)
        {
            <tr>
                <td><MyText @bind-Value="user.Id"></MyText></td>
                <td><MyText @bind-Value="user.Name"></MyText></td>
                <td @onclick="(() => DeleteUser(user))">delete</td>
            </tr>
        }
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

Blazor 代码

private List<User> _users = new List<User>();
private class User
{
    public string Id { get; set; } = "";
    public string Name { get; set; } = "";
}

protected override void OnInitialized()
{
    _users.Add(new User() { Id = "1", Name …
Run Code Online (Sandbox Code Playgroud)

c# components blazor

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

TWinControl 组件不响应表单大小调整的问题

我有一个用 Delphi 10.4 编写的可视化控件。为了方便地关注问题,我仅创建了具有 Anchors 和 Align 属性的 TwinControl。我包括了 AutoSize 属性。问题是当该组件构建安装并放置在 TForm 上时,控件将不会响应表单大小调整。

该控件已将控件设置为锚定正确。我向表单添加了一个 TButton,并将其锚点设置为 akRight。按钮随着表单的拉伸而移动。我的控制没有。我可以提供这个小测试的完整源代码。也许有人以前见过这个。我以前曾在我的组件中使用过 TFrame,但发现存在一些显示问题,仅部分控件显示或根本不显示。我的客户没有留下深刻的印象。我会欣赏一些智慧。

这是来自 TWinControl 的代码

unit SampleControl;

    interface

    uses
      System.Classes, Vcl.Controls, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons, Vcl.Dialogs,
      Vcl.Graphics,AdvGrid,vcl.Forms,System.SysUtils,StrUtils,Messages, EBS3DataUtils,
      EBSGridSetup,System.UITypes,WinApi.Windows,vcl.Grids,AdvObj,System.Variants;

    Type
      TSampleControl = class(TWinControl)
      private
        FAnchors: TAnchors;
        FAlign : TAlign;
        FAutoSize : Boolean;
        procedure InitializeComponents;
        procedure SetAnchors(const Value: TAnchors);
        procedure SetAlign(const Value: TAlign);
        procedure SetAutoSize(const Value: Boolean);
      Public
        procedure Resize; Override;
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      Published
        property Anchors: TAnchors read FAnchors write SetAnchors default …
Run Code Online (Sandbox Code Playgroud)

delphi anchor components vcl alignment

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

简单的日历工具

我需要将日历控件放在一个选项中.它必须适合一个非常小的地方.

如果我们有一些时间表,控件必须显示日期编号和颜色.

必须能够导航并选择:

  • 年份

应与数据库或手册集成.

简单,轻便,快速

delphi components calendar

0
推荐指数
1
解决办法
2094
查看次数

Flex 3 - 获取组件的实际大小

我想在添加一些孩子后获得组件的实际高度.

在调试模式下检查变量选项卡时,我看到2个不同的高度变量:$ height(包含正确的值:138)和height/_height(包含错误的值:10).

我猜显示器没有更新,因此我没有使用component.height获得正确的高度,但是如何获得$ height的值?

感谢您提供的任何帮助=)

此致,BS_C3


@Flextras

再次,非常感谢您的回答!这真的很详细=)

Measuredheight并没有给我我正在寻找的值,而且explicitHeight没有值(NaN).我现在无法测试,所以我无法分辨出未缩放的高度......

这是我的结构:

MainContainer - Canvas
    BOX1 - Canvas (height = 100)
    BOX2 - Canvas (height = 100)
    VariableBox - Canvas (height: depends on the height of it's variable number of children)
    Text - TextArea
Run Code Online (Sandbox Code Playgroud)

我需要VariableBox的高度才能定位Text.

该函数如下所示:

updateDisplay(){
    for(i;i<list.length;i++){
        VariableBox.addChild(new HBox);
    }
    // reposition Text depending on VariableBox's height
}
Run Code Online (Sandbox Code Playgroud)

我知道我没有提供任何代码,但我现在不在我的工作电脑上> _ <

希望这可以帮助!!

apache-flex components

0
推荐指数
1
解决办法
3925
查看次数

Cakephp在帮助器内调用组件方法

我使用Cakephp 2.1,我需要从视图助手调用一个驻留在插件中的组件方法:

该组件在这里:

/app/Plugin/Abc/Controller/Component/AbcComponent.php

帮助者在这里:

/app/View/Helper/SimpleHelper.php

我试过里面的帮手:

App::import('Component', 'Abc.Abc');
$this->Abc = new Abc(); or $this->Abc = new AbcComponent;
Run Code Online (Sandbox Code Playgroud)

要么

$this->Abc = $this->Components->load('Abc.Abc');
Run Code Online (Sandbox Code Playgroud)

在控制器内部,这个组件没有问题.我知道这不推荐(MVC设计等),但如果我不这样使用它,我需要复制很多代码.我需要做类似的事情:

MyHelper extends Helper{
   $simpleVar = Component->get_data();
}
Run Code Online (Sandbox Code Playgroud)

php components cakephp helper

0
推荐指数
1
解决办法
6047
查看次数

如何在app小部件中设置Android AnalogClock的时间?

如何AnalogClock在app小部件中设置Android的自定义时间?

作为替代方案,我正在考虑覆盖默认的AnalogClock来设置代码的时间.换句话说,我会创建自定义时钟,它从默认的View或AnalogClock扩展.然后将我的自定义时钟放在小部件布局UI上.

这可能吗?我担心RemoteViews会限制我们自己的自定义组件.

更新: 这是错误日志我首先遵循vArDo给出的解决方案.

在此输入图像描述

layout android components widget android-appwidget

0
推荐指数
1
解决办法
6203
查看次数

delphi图形组件到activex

我制作了一个图形组件,祖先必须是TGraphiccontrol,因为我需要画到画布上.现在我想将此组件转换为activex控件,但这似乎只有当组件是TWincontrol的后代时才可能.我该如何解决这个问题?

delphi components activex graphic

0
推荐指数
1
解决办法
104
查看次数

将重点放在第二级引导程序模态中包含的输入控件上

我正在使用Vue.js 2.1.10和Bootstrap 3.3.7来显示打开另一个模式对话框的模式。每个模式对话框都包含在不同的组件中。在第一个组件内部,有对第二个组件(select-travler)的引用。

根据Bootsrap文档,我必须通过监听事件来设置焦点shown.bs.modal。将焦点设置在第一个模态中包含的输入控件上非常有用。问题:当模态在另一个模态之上时,这种方式不起作用。

第一个模态组件如下所示:

<template>
    <div ref="tripEdit" class="modal fade" role="dialog">
        <!-- Inbeded component -->
        <select-travler ref="selectTravler"></select-travler>
        <!-- /Inbeded component -->

        <div class="modal-lg modal-dialog">
            <div class="modal-content">
                <div class="modal-body container form-horizontal">

                    <div class="form-group">
                        <label for="travler_name" class="control-label">
                            Travler's name
                        </label>
                        <input id="travler_name" ref="travler_name"
                            v-model="travler_name"/>
                    </div>
                </div>
            </div>
        </div>

    </div>
</template>

<script>
    export default {
        data () {
            return {
                travler_name: null,
            }
        },

        methods: {
            show (operationType) {
                $(this.$refs.tripEdit).modal('show');

                let that = this;
                $(this.$refs.tripEdit).on('shown.bs.modal', …
Run Code Online (Sandbox Code Playgroud)

javascript components bootstrap-modal vue.js vuejs2

0
推荐指数
1
解决办法
1698
查看次数

具有值的角度属性分量

使用Angular 6.0.7,我正在创建一个属性组件并将一个值注入其中。为此,我在这里回答。

我想知道是否有一种方法,就像在AngularJS中一样,可以直接在组件中输入值,而无需定义单独的[form]=""。例如:<div my-component="form">


HTML

<form (ngSubmit)="login(loginForm.form.valid)" 
      #loginForm="ngForm"
      validate-on-submit='"loginForm"'>
</form>
Run Code Online (Sandbox Code Playgroud)

属性组件

@Component({
  selector: '[validate-on-submit="form"]',
  template: `<ng-content></ng-content>`
})
export class ValidateOnSubmitComponent implements OnInit {

  @Input() private form: NgForm;

  public ngOnInit(): void {
    console.warn(this.form);    
  }
}
Run Code Online (Sandbox Code Playgroud)

console.warn(this.form)在“结果undefined”。


我想做什么

我试图将表单(通过变量#loginForm)注入组件,但是我不想进行其他绑定,例如[form]="loginForm"。根据此处的帖子这应该是可能的,但我无法使其正常工作。自从更高的Angular版本以来,这种情况发生了变化吗?或者我在这里做错了什么?


我试过了

我试图@Input通过显式绑定将输入绑定到变量@Input('form') private form: NgForm,但这也导致了' undefined'。

我也尝试还原或更改引号validate-on-submit="loginForm"validate-on-submit="'loginForm'",但是在某些尝试中,这导致Angular根本不协调组件选择器。


有了@ user184994的答案,我设法更改了代码并使它工作。这导致以下代码:

html

<form (ngSubmit)="login(loginForm.form.valid)" 
      #loginForm="ngForm"
      [validate-on-submit]="loginForm"> …
Run Code Online (Sandbox Code Playgroud)

components typescript angular

0
推荐指数
1
解决办法
4388
查看次数

关闭应用程序后,为何在React根组件中未触发componentWillUnmount

如果存在某个Cookie(使用通用Cookie),则当用户退出应用程序时,我需要从浏览器中删除Cookie。

我有的代码:

componentWillUnmount(){
    const cookies = new Cookies();
    if(cookies.get("remember")==0){
      cookies.remove("userName");
      cookies.remove("password")
    }

  }
Run Code Online (Sandbox Code Playgroud)

适用于其他组件,但我只需要在根上将其触发即可在用户关闭应用程序之前触发。

当应用程序退出时,为什么componentWillUnmount不会触发?

javascript cookies components reactjs

0
推荐指数
1
解决办法
329
查看次数