Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在Angular2中实现Caliburn.Micro风格的MVVM_.net_Wpf_Angular_Mvvm_Caliburn.micro - Fatal编程技术网

.net 如何在Angular2中实现Caliburn.Micro风格的MVVM

.net 如何在Angular2中实现Caliburn.Micro风格的MVVM,.net,wpf,angular,mvvm,caliburn.micro,.net,Wpf,Angular,Mvvm,Caliburn.micro,我有使用WPF和MVVM和Caliburn.Micro的经验,并尝试在Angular2中实现一个简单的示例 我在WPF中有: 视图:与业务逻辑完全分离,只包含视图的代码 ViewModel:它包含业务逻辑 命令:与Angular2中的服务类似 我想实现这一点: 单击按钮后,将文本框中的文本发送到服务器,然后清除文本框。如果文本框为空,则禁用该按钮 我在WPF中实现了如下: 我的看法是: <TextBox Name="Message" /> <!-- Binding create

我有使用
WPF
MVVM
Caliburn.Micro
的经验,并尝试在Angular2中实现一个简单的示例

我在WPF中有:

  • 视图
    :与业务逻辑完全分离,只包含视图的代码
  • ViewModel
    :它包含业务逻辑
  • 命令
    :与
    Angular2中的服务类似
  • 我想实现这一点:

    单击按钮后,将
    文本框
    中的文本发送到服务器,然后清除
    文本框
    。如果
    文本框
    为空,则禁用该按钮

    我在
    WPF
    中实现了如下:

    我的看法是:

    <TextBox Name="Message" /> <!-- Binding created by Caliburn.Micro -->
    <Button Name="Save" /> <!-- Binding created by Caliburn.Micro -->
    
    这是命令:

    public class SaveCommand 
    { 
         public void Run()
         {
              // ...
         }
    }
    
    正如您所见,我不必编写
    单击
    处理程序、创建绑定等。它由
    Caliburn
    很好地处理。没有混乱,它只是非常简单,易于扩展
    Save
    CanSave
    也很好地分开了。我不必担心
    Save
    方法中的
    CanSave

    我可以重用
    命令
    ,重用
    视图模型
    甚至
    视图
    。通过继承现有的
    ViewModels
    ,我可以创建新的
    ViewModels
    。我可以对不同的
    视图模型使用
    视图
    ,反之亦然


    如何在
    Angular2
    中实现类似的功能?我是否应该将业务逻辑放入
    组件中
    ?Angular2中不知何故缺少了
    ViewModel
    。?

    这可能会帮助您了解一些想法,谢谢,但这不是我想要的。我知道如何使用一个简单的
    组件来实现这一点,但这还不够:)@David,你真的想看看Aurelia,那么它与Rob创建Caliburn后的CM非常相似,并且一些相同的原则也适用于
    
    public class SaveCommand 
    { 
         public void Run()
         {
              // ...
         }
    }