breezejs hasChangesChanged事件没有提出

时间:2013-04-22 11:58:18

标签: angularjs breeze

不太确定这是否是AngularJS或BreezJs问题......

我有一个控制器,我在其中执行以下操作:

$scope.mandat = domiciliationService.createMandat();

并在domiciliationService中:

function createMandat () {
        return manager.createEntity('Mandate');
}

我的视图绑定到$ scope.mandat,当我更改绑定到$ scope.mandat的某个属性的文本框中的值时,我可以看到它反映在实际对象上(通过显示值一个跨度)。到目前为止一切都很好。

但是,永远不会引发hasChangesChanged事件。在服务中,这是我订阅的方式:

manager.hasChangesChanged.subscribe(function (args) {
        var hasChangesChanged = args.hasChanges;
        var entityManager = args.entityManager;
        alert('changed');
    });

就像我在视图中更改值时,他们修改$ scope上的对象但不修改实际实体...我缺少什么?

1 个答案:

答案 0 :(得分:1)

所以在玩了这个事件后,我发现了两件事。实际上,为了确保我的代码不是问题,我调试了John Papa的Hot Towel应用程序,因为他也使用了微风。行为与我的应用程序相同。

  1. 当我创建新实体时,会触发hasChangesChanged事件。然后,当我在表单的控件中输入绑定到此实体属性的数据时,不会触发该事件。

  2. 当我编辑现有实体时,只有当我修改属性时才触发hasChangesChanged事件(如果我在文本框中编辑值)。

  3. 因此,有人可能会争辩说,在用户开始实际填充数据之前,不应在第一个场景中触发hasChangesChanged事件。但我可以忍受。